LeetCode.589. N 叉树的前序遍历

题目

589. N 叉树的前序遍历

分析

我们之前有做过LeetCode的 144. 二叉树的前序遍历,其实对于 N 插树来说和二叉树的思路是一模一样的。
二叉树的前序遍历是【根 左 右】
N叉树的前序遍历顺序是【根 孩子】,你可以把二叉树的【根 左 右】想象成【根 孩子】,因为左右就是孩子。

代码

先看一下二叉树前序遍历的代码:

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<>();func(root,res);return res;}void func(TreeNode cur,List<Integer> res) {if(cur == null) return;// 先记录根节点res.add(cur.val);// 遍历左子树func(cur.left,res);// 遍历右子树func(cur.right,res);}
}

只需要改动一点就是N叉树的前序遍历代码,如下:

/*
// Definition for a Node.
class Node {public int val;public List<Node> children;public Node() {}public Node(int _val) {val = _val;}public Node(int _val, List<Node> _children) {val = _val;children = _children;}
};
*/class Solution {public List<Integer> preorder(Node root) {List<Integer> res = new ArrayList<>();if(root == null) return res;pre(root,res);return res;}void pre(Node cur,List<Integer> res) {if(cur == null) return ;// 先记录当前节点res.add(cur.val);// 再遍历孩子for(Node node : cur.children) {pre(node,res);}}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/692465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【python】网络爬虫与信息提取--scrapy爬虫框架介绍

一、scrapy爬虫框架介绍 scrapy是一个功能强大的网络爬虫框架&#xff0c;是python非常优秀的第三方库&#xff0c;也是基于python实现网络爬虫的重要技术路线。scrapy不是哟个函数功能库&#xff0c;而是一个爬虫框架。 爬虫框架&#xff1a;是实现爬虫功能的一个软件结构和功…

AS-V1000 视频监控平台产品介绍:客户端功能介绍(四)

目 录 一、引言 1.1 AS-V1000视频监控平台介绍 1.2平台服务器配置说明 二、软件概述 2.1 客户端软件用途 2.2 客户端功能 三、客户端功能说明 3.1告警管理 3.1.1告警联动 &#xff08;1&#xff09;告警联动显示 &#xff08;2&#xff09;告警联动处理 3…

基于学习的参数化查询优化方法

一、背景介绍 参数化查询是指具有相同模板&#xff0c;且只有谓词绑定参数值不同的一类查询&#xff0c;它们被广泛应用在现代数据库应用程序中。它们存在反复执行动作&#xff0c;这为其性能优化提供了契机。 然而&#xff0c;当前许多商业数据库处理参数化查询的方法仅仅只…

代码运行时内存分区

计算机科学中&#xff0c;代码运行时的内存通常划分为以下分区&#xff1a; 堆栈 静态区 活跃区 代码段 常量存储区 全局/静态数据区 只读数据区 BSS 段 ----------------------------------- | 代码段 | ----------------------------------- | …

LeetCode--1445. 苹果和桔子

文章目录 1 题目描述2 测试用例3 解题思路 1 题目描述 表: Sales ------------------------ | Column Name | Type | ------------------------ | sale_date | date | | fruit | enum | | sold_num | int | ------------------------(sale…

Uibot (RPA设计软件)智能识别信息+微信群发助手(升级版)———课后练习2

解决痛点&#xff1a; Excel如何计算两个日期之间相差月数 方法&#xff1a; 1、首先打开要进行操作的Excel表格。 2、打开后选中要计算相差月数的单元格。 3、然后输入公式&#xff1a;DATEDIF(A2,B2,"m")&#xff0c;输入完成后点击回车键。 4、在弹出的窗口中&a…

Rancher实用篇-使用rancher,部署微服务应用

说到rancher&#xff0c;我们必须先了解一下k8s 一、k8s简介 Kubernetes&#xff08;通常简写为 K8s&#xff09;是一个开源的容器管理系统&#xff0c;由Google于2014年发起&#xff0c;并在2015年贡献给Cloud Native Computing Foundation (CNCF)进行维护。它基于Borg项目的…

202427读书笔记|《猫的自信:治愈系生活哲学绘本》——吸猫指南书,感受猫咪的柔软慵懒与治愈

202427读书笔记|《猫的自信&#xff1a;治愈系生活哲学绘本》——吸猫指南书&#xff0c;感受猫咪的柔软慵懒与治愈 《猫的自信&#xff1a;治愈系生活哲学绘本》作者林行瑞&#xff0c;治愈系小漫画绘本&#xff0c;10分钟可以读完的一本书&#xff0c;线条明媚&#xff0c;自…

Linux-RT特点与简单应用

Linux-RT是指Linux Real-Time&#xff08;实时&#xff09;的简称&#xff0c;它是针对实时性能优化的Linux内核版本。传统的Linux内核并不是专为实时性设计的&#xff0c;因此在一些对实时性要求较高的应用场景下&#xff0c;可能无法满足实时性要求。Linux-RT通过对Linux内核…

【VTKExamples::PolyData】第三十四期 MiscPointData GetMiscPointData

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享VTK样例MiscPointData,该样例主要介绍如何为PolyData添加PointData属性数据。 VTK样例GetMiscPointData,该样例介绍如何获取PointData属性数据。 希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞…

量化巨头“卖空”被刷屏!网友:又一类量化策略要“收摊”了

量化圈遇到了龙年首宗“大事件”&#xff01; 2月20日晚间&#xff0c;沪深交易所同时出手对量化巨头灵均投资的异常交易行为进行“处理”。 沪深交易所均称发现灵均在2月19日开盘1分钟内&#xff0c;名下多个账户通过计算机程序自动生产交易指令&#xff0c;短时间大量下单卖…

公寓报修|公寓报修管理系统|基于springboot公寓报修管理系统设计与实现(源码+数据库+文档)

公寓报修管理系统目录 目录 基于springboot公寓报修管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、住户管理 2、房间管理 3、维修人员管理 4、维修分类管理 5、物品信息管理 6、维修申请管理管理 四、数据库设计 1、实体ER图 五、核心代码 六、…

IO 作业 24/2/20

一、思维导图 二、习题 #include <myhead.h> int main(int argc, const char *argv[]) {FILE *fpNULL;FILE *fqNULL;pid_t pidfork();if(pid>0){if((fpfopen("./text.txt","r"))NULL){perror("fopen error");return -1;} if((f…

天机星在十二宫

文章目录 前言内容总结 前言 天机星在十二宫 内容 天机星在十二宫 天机属木&#xff0c;南斗第三益算是善星&#xff0c;化气为善。 天机星为轴星&#xff0c;有此天机轴星&#xff0c;方能订十八星曜之位。 天机为兄弟宮主。是动星&#xff0c;似轮轴不停转动&#xff0c;…

C++桌面应用开发+编译环境搭建指导

C桌面应用开发编译环境搭建指导 此帖目的&#xff1a;记录本人初次使用Visual Studio 2022(以下简称VS)IDE软件进行Windows桌面应用开发的环境搭建过程&#xff0c;以期对具有相同情况、初次使用和搭建VS开发编译环境进行C开发的小白程序员提供参考作用。 1.下载VS IDE Insta…

鸿蒙将与安卓应用形成“硬分叉”,多家平台急聘鸿蒙开发员

最近&#xff0c;网友注意到&#xff0c;多家企业公布了鸿蒙系统有关的岗位招聘。 11 月 8 日&#xff0c;美团发布了鸿蒙高级工程师、鸿蒙基建工程师等多个鸿蒙开发相关岗位。主要开发美团鸿蒙App、大众点评鸿蒙App。 根据脉脉平台&#xff0c;美团鸿蒙基建工程师岗位给出的…

C++ 二分模版 数的范围

给定一个按照升序排列的长度为 n 的整数数组&#xff0c;以及 q 个查询。 对于每个查询&#xff0c;返回一个元素 k 的起始位置和终止位置&#xff08;位置从 0 开始计数&#xff09;。 如果数组中不存在该元素&#xff0c;则返回 -1 -1。 输入格式 第一行包含整数 n 和 q &…

HBM可以解决冯诺伊曼架构的陷阱吗?

高带宽内存&#xff08;High Bandwidth Memory, HBM&#xff09;在一定程度上缓解了冯诺伊曼架构中处理器与主存之间的通信瓶颈问题&#xff0c;但并不能完全解决冯诺伊曼陷阱。 HBM是一种先进的3D堆叠式内存技术&#xff0c;它通过将多个DRAM芯片垂直堆叠在一起&#xff0c;并…

C++的std::vector

std::vector是C标准库中的一个序列容器&#xff0c;它封装了动态大小数组的行为。std::vector允许你在运行时动态地添加和删除元素&#xff0c;自动管理存储空间的分配和释放。由于其灵活性和易用性&#xff0c;std::vector在C程序中被广泛使用&#xff0c;特别是在需要存储一系…

JavaScript中手动实现Array.prototype.map方法

在前端开发中&#xff0c;我们经常需要对数组进行操作和处理。在JavaScript中&#xff0c;数组是常用的数据类型之一。而数组的map方法可以将一个数组中的每个元素都进行某种操作&#xff0c;并返回一个新的数组。今天&#xff0c;我们就来手动实现JavaScript中数组原型的map方…