力扣题目——429. N 叉树的层序遍历
注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路。
描述
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。
树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。
示例:
输入:root = [1,null,3,2,4,null,5,6]
输出:[[1],[3,2,4],[5,6]]
解题思路
这道题只需要在二叉树的层序遍历法的基础上,在弹出某个节点后,把其所有子节点push到队列中即可。唯一不同的是,二叉树层序遍历是手动将左右节点push到队列中,而N叉树需要使用一个for
循环将所有子节点push到队列中。
点击链接即可查看二叉树层序遍历算法的详解 力扣题目——102. 二叉树的层序遍历
二叉树的层序遍历代码
var levelOrder = function(root) {// 用于存放最后结果的数组let result = []// 初始化队列,若 root 为 null,则队列直接为[], 不进行 while 循环,直接返回resultlet queue = root ? [root] : []// 只要队列中存在元素,则遍历,若不存在元素,说明树已经遍历完毕,退出while(queue.length !== 0){// 存放每一层元素let temp = []// 遍历 len 个元素,即遍历这一层的所有元素for(let i = 0, len = queue.length; i < len; i++){let node = queue.shift()temp.push(node.val)// 只有不为空的时候,才需要将子节点 push 到队列中if(node.left) queue.push(node.left)if(node.right) queue.push(node.right)}result.push(temp)}return result
};
这道题目的代码
var levelOrder = function(root) {let queue = root === null ? [] : [root]let result = []while(queue.length !== 0){let nodes = []for(let i = 0, len = queue.length; i < len; i++){const node = queue.shift()nodes.push(node.val)// 使用 for 循环将当前节点的所有子节点都追加到 queue 中for(let j = 0; j < node.children.length; j++)queue.push(node.children[j])}result.push(nodes)}return result
};
力扣题目——429. N 叉树的层序遍历相关推荐
- 力扣刷题之二叉树的层序遍历
Welcome to you, 每日一刷系列 二叉树的层序遍历 二叉树的层序遍历II 二叉树的右视图 ...
- 力扣解法汇总589- N 叉树的前序遍历
原题链接:力扣 描述: 给定一个 n 叉树的根节点 root ,返回 其节点值的 前序遍历 . n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例). 示例 1 ...
- LeetCode 429. N叉树的层序遍历(queue)
1. 题目 返回其层序遍历:[[1],[3,2,4],[5,6] ] 2. 解题 queue队列解题 /* // Definition for a Node. class Node { public: ...
- 429. N 叉树的层序遍历 c++ 队列
给定一个 N 叉树,返回其节点值的层序遍历.(即从左到右,逐层遍历). 树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例). 输入:root = [1,null,3,2,4,nu ...
- 力扣429. N 叉树的层序遍历(JavaScript)
var levelOrder = function(root) {let arr=[]let qq=[root]if(root==null){return arr}while(qq.length){l ...
- LeetCode429. N 叉树的层序遍历
题目 429. N 叉树的层序遍历 给定一个 N 叉树,返回其节点值的层序遍历.(即从左到右,逐层遍历). 树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例). 示例 1: 输入 ...
- LeetCode每日一题:N叉树的层序遍历(No.429)
题目:N叉树的层序遍历 给定一个 N 叉树,返回其节点值的层序遍历. (即从左到右,逐层遍历). 复制代码 示例: 例如,给定一个 3叉树 : 复制代码 返回其层序遍历: [[1],[3,2,4],[ ...
- 力扣题目——103. 二叉树的锯齿形层序遍历
注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行 ...
- 力扣题目——107. 二叉树的层序遍历 II
注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉树,返回其节点值自底向上的层序遍历. (即按从叶子节点所在层到根 ...
最新文章
- java未知对象调用其某个方法_java如何调用一个方法内的对象
- 高考结束了,来看下QS最新全球大学排名,清华北大进前20
- axure7 地址选择_AxureRP8实战手册-案例7(形状:唯一选中项)
- boost::container模块实现分配器参数的测试程序
- 在 Go 语言中,如何正确的使用并发
- 数据库mdf和ldf文件_如何将SQL数据库文件(MDF和LDF)移动到另一个位置
- 亚马逊自动化仓库事故,机器人失手戳破有毒喷雾,24名工人被送医院
- halcon中编程运算符_R编程中的运算符
- 极速手游加速SDK快速指入指南+极速手游加速器SDK参考文档
- C语言 逻辑运算符及其优先级
- 论文导读 | 社交网络上的信息传播预测
- jeecms mysql_jeecms学习笔记
- Bumped Map And Normal Map
- Android手机扫描识别银行卡技术
- 正确将图片保存到相册的方法
- linux创建文件内容三行,Linux 文本处理三剑客
- workbook 读取excel表格
- 导数在梯度下降算法中的意义理解
- AUTOCAD安装未完成,某些产品无法安装
- ibm服务器 产品型号对应表,产品线最全 IBM中小企业服务器选型指南
热门文章
- PowerDesigner 中将Comment(注释)及Name(名称)内容互相COPY的VBS代码
- ajax如何用编号查询姓名,Ajax js 使用Ajax检测用户名是否存在
- 聊聊Election Algorithms
- iOS 不错的第三方开源库归类分享
- 详解jdbcTemplate和namedParameterJdbcTemplate
- 理解asp.net中DropDownList编辑数据源,绑定数据库数据。
- 编译报错程序集版本高于所引用的程序集的版本
- Myeclipse中web project 与java project区别
- 小朋友的经典造句,现在做老师的太不容易了
- 简化版XP按装IIS5.1实录