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.hqwc.cn/news/479129.html

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

相关文章

领域驱动设计(Domain Driven Design)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、场景和要求二、领域模型关键词1.领域2.子域3.通用语言4.限界上下文5.领域模型6.实体和值对象7.聚合根8.领域服务9.领域事件 总结 前言 Domain Driven Desi…

Docker安装RocketMQ

文章目录 前言一、rocketMQ安装教程二、rocketmq-console可视化界面 前言 本章节将介绍如何在docker环境下安装rocketmq以及rocketmq-console可视化界面 一、rocketMQ安装教程 在安装之前请保证您的服务器已经安装好docker环境并且安装好JDK &#xff08;1&#xff09;拉取r…

什么软件可以保护公司办公终端 \ 电脑的文件数据、资料不被外泄?

天锐绿盾终端安全管理系统&#xff1a;这是一款综合性的安全软件&#xff0c;提供了文件加密、图纸加密、文档加密、源代码防泄密等多种智能透明加密功能&#xff0c;操作简单易用。 PC端&#xff1a;https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfe…

Mysql事务原理与优化

概述 我们的数据库一般都会并发执行多个事务&#xff0c;多个事务可能会并发的对相同的一批数据进行增删改查操作&#xff0c;可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。 这些问题的本质都是数据库的多事务并发问题&#xff0c;为了解决多事务并发问题&…

C语言—指针(3)

嘿嘿嘿嘿&#xff0c;你看我像指针吗? 不会写&#xff0c;等我啥时候会写了再说吧&#xff0c;真的累了&#xff0c;倦了 1.面试题 1&#xff09;定义整形变量i&#xff1b; 2&#xff09;p为指向整形变量的指针变量&#xff1b; 3&#xff09;定…

Atcoder ABC340 C - Divide and Divide

Divide and Divide&#xff08;分而治之&#xff09; 时间限制&#xff1a;2s 内存限制&#xff1a;1024MB 【原题地址】 所有图片源自Atcoder&#xff0c;题目译文源自脚本Atcoder Better! 点击此处跳转至原题 【问题描述】 【输入格式】 【输出格式】 【样例1】 【样例…

微信小程序-绑定数据并在后台获取它

如图 遍历列表的过程中需要绑定数据&#xff0c;点击时候需要绑定数据 这里是源代码 <block wx:for"{{productList}}" wx:key"productId"><view class"product-item" bindtap"handleProductClick" data-product-id"{{i…

Uniapp-开发小程序

文章目录 前言一、npm run xxx —— cross-env: Permission denied解决方法&#xff08;亲测有效&#xff09;其他解决方法&#xff1a; 二、macOS 微信开发者工具选择uniapp 用 vscode 开发 总结 前言 macOS下 uniapp 开发小程序。 一、npm run xxx —— cross-env: Permissi…

ACE的MPC编译

如下需要下载已经生成好的工程&#xff0c;链接如下: Releases DOCGroup/ACE_TAO GitHub 步骤1 下载ACE:ACE 下载MPC:MPC 下载perl并安装&#xff1a;perl 注意&#xff1a;perl安装中勾选将perl路径添加到path环境变更中&#xff0c;安装完后重启 解压ACE后路径如下:…

突破百度地图Web API的配额限制,实现接口调用自由!

声明 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 引言 好久没用百度地图开放平台,最近发现平台调整了接口调用的策略,增加了实名认证,…

JAVA高并发——人手一支笔:ThreadLocal

文章目录 1、ThreadLocal的简单使用2、ThreadLocal的实现原理3、对性能有何帮助4、线程私有的随机数发生器ThreadLocalRandom4.1、反射的高效替代方案4.2、随机数种子4.3、探针Probe的作用 除了控制资源的访问&#xff0c;我们还可以通过增加资源来保证所有对象的线程安全。比如…

从低像素到高清晰,批量提升TIFF图片像素,高效管理图片库

你是否曾经因为手中持有的TIFF图片像素过低&#xff0c;而无法展现出其应有的魅力而苦恼&#xff1f;在数字化时代&#xff0c;像素就是图像的生命力&#xff0c;而一张低像素的TIFF图片往往无法满足我们日益增长的视觉需求。 第一步&#xff0c;首先我们要进入首助剪辑高手主页…