首页 > 试题广场 >

求二叉树的层序遍历

[编程题]求二叉树的层序遍历
  • 热度指数:239670 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)
例如:
给定的二叉树是{3,9,20,#,#,15,7},

该二叉树层序遍历的结果是
[
[3],
[9,20],
[15,7]

]


提示:
0 <= 二叉树的结点数 <= 1500


示例1

输入

{1,2}

输出

[[1],[2]]
示例2

输入

{1,2,3,4,#,#,5}

输出

[[1],[2,3],[4,5]]

说明:本题目包含复杂数据结构TreeNode,点此查看相关信息
头像 华科不平凡
发表于 2020-08-22 13:26:14
精华题解 用队列实现,每次记录下当前队列的大小即可: // // Created by jt on 2020/8/22. // #include <vector> #include <queue> using namespace std; class Solution { publi 展开全文
头像 牛客题解官
发表于 2022-04-22 11:51:16
精华题解 题目的主要信息: 将给定二叉树按行从上到下、从左到右的顺序输出 输出到一个二维数组中,数组中每行就是二叉树的一层 举一反三: 学习完本题的思路你可以解决如下题目: BM27. 按之字形顺序打印二叉树 BM35. 判断是否是完全二叉树 方法一:非递归(推荐使用) 知识点:队列 队列是一种仅支持在表 展开全文
头像 漫漫云天自翱翔
发表于 2021-07-06 16:14:41
精华题解 题解一:递归(前序遍历)主要思路:前序遍历,中、左、右左边的节点一定先于右边节点遍历到,加入至对应的数组中,满足层序遍历的要求;要点:1、利用一个level变量标记当前递归的深度,将节点的值push到当前深度的数组的后面;2、level变量大于res数组的size,说明第一次进入二叉树本层,对res 展开全文
头像 江南好___
发表于 2021-07-15 22:06:31
精华题解 描述 题目描述 给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 示例 输入:{1,2,3,4,#,#,5} 返回值:[[1],[2,3],[4,5]]知识点:树,层序遍历,队列,栈难度:⭐⭐ 题解 解题思路 层序遍历一般都可以通过队列或栈实现 如果是队列,每次需要加入当前 展开全文
头像 牛一霸
发表于 2021-07-04 22:03:09
精华题解 题目:二叉树的层序遍历 描述:给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 例如:给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树层序遍历的结果是[[3],[9,20],[15,7]]。 示例1:输入:{1,2},返回值:[[1], 展开全文
头像 牛客500979850号
发表于 2021-07-13 16:42:19
精华题解 解题思路: 二叉树的层序遍历是一道基础的题目,可以使用BFS和DFS两种思路来解决,其中BFS在此题中相对更为简洁。 方法一:使用BFS遍历 class Solution { public: /** * * @param root TreeNode类 展开全文
头像 小橘子ღ
发表于 2020-11-22 23:15:34
Java递归,直接从某力的二叉树卡片过来,思想很简单,首先声明一个成员变量供全局使用;其次写一个向下探索的递归方法,注意先从左边再从右边;每向下一层level+1这里很巧妙的是,对于二维List来说,将根视为第0层,树的深度正好等于一维List的个数。 import java.util.*; /* 展开全文
头像 小洋芋热爱NLP
发表于 2020-11-24 19:22:41
1.题目描述: 2.题目链接:https://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3?tpId=188&&tqId=36551&rp=1&ru=/activity/oj&qru= 展开全文
头像 数据结构和算法
发表于 2020-12-21 17:45:46
1,BFS解决 其实这就是二叉树的BFS,也可以看下之前讲的373,数据结构-6,树 , 就是这样,一层一层打印,使用队列解决 public ArrayList<ArrayList<Integer>> levelOrder(TreeNode root) { 展开全文
头像 一叶浮尘
发表于 2020-04-04 18:39:46
二叉树层次遍历这一次的解法与之前写法相比更简洁了一些。 /** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; 展开全文
头像 蘑菇睡不着
发表于 2021-07-12 23:18:59
思路 层序遍历就是一层一层的去遍历,如上图就是:1 - 2 - 4 - 5 - 3. 这道题要求的返回值时 ArrayList<ArrayList<integer>>。说明每一层都要用一个 ArrayList 去存储,大家想想,我想要有序的去层序遍历应该通过什么数据结构 展开全文
头像 加油做题
发表于 2022-05-17 11:16:22
记录一下 二级指针生成二维数组 /** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; * * C语言声明定义全局变量请加上static,防止重复定义 */ 展开全文
头像 Tiamo_z
发表于 2022-03-11 17:38:29
二叉树的层序遍历有两种方法,分别是递归和队列,我看上面的大佬都用的递归,我来个队列的吧 # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # 展开全文
头像 offer啊啊offer
发表于 2021-09-22 21:40:21
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # # @param root TreeN 展开全文
头像 文和906
发表于 2021-09-15 14:41:29
使用递归方法,声明一个全局二维数组来保存遍历结果,以根结点为第0层,每次递归都使层数++,并在对应层数插入结点值。 由于结果集最初为空,需要随着层数的加深不断向其中加入新数组。由于使用层数进行插入,所以只需让层数与size进行比较,两者相等则说明层数越界,要想结果集中加入新数组。 这里有个小坑,算是 展开全文
头像 Yurino
发表于 2021-07-11 00:16:48
class Solution: def levelOrder(self , root ): # write code here if not root:return [] queue = [root] res = [] 展开全文