Given the root of a binary tree, return the level order traversal of its nodes’ values. (i.e., from left to right, level by level).
Example 1:
Example 2:
Example 3:
Constraints:
二叉树的层序遍历。
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
 
思路 此题比较简单的做法是用层序遍历BFS,但是此题也可以用DFS深度遍历做,比较巧妙。两种思路的时间复杂度是O(n),空间复杂度是O(n^2),这个空间是返回二维 list 所需的空间。
复杂度 时间O(n)
BFS Java实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 class  Solution  {public  List<List<Integer>> levelOrder (TreeNode root)  {new  ArrayList <>();if  (root == null ) {return  res;new  LinkedList <>();while  (!queue.isEmpty()) {int  size  =  queue.size();new  ArrayList <>();for  (int  i  =  0 ; i < size; i++) {TreeNode  cur  =  queue.poll();if  (cur.left != null ) {if  (cur.right != null ) {return  res;
JavaScript实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 var  levelOrder = function (root ) {let  res = [];if  (root === null ) return  res;let  queue = [root];while  (queue.length ) {let  list = [];let  size = queue.length ;for  (let  i = 0 ; i < size; i++) {let  cur = queue.shift ();push (cur.val );if  (cur.left  !== null ) queue.push (cur.left );if  (cur.right  !== null ) queue.push (cur.right );push (list);return  res;
DFS DFS的思路的要点在于,需要在递归函数中多一个参数 level,记录当前递归到树的第几层了,同时这个level也决定了最后的结果集里面有几个 subarray。跑一下例子好了。当第一次把根节点3放进res之后,下面就开始遍历他的两个孩子,此时level是1。遍历到左孩子9的时候,level是1,大于等于res.length(1),所以需要再加入一个subarray(15行)以便于加入9这个节点(17行)。当遍历右孩子20的时候,level依然是1,并不大于等于res.length(2),所以此时并不需要再加入subarray了。但是20依然可以被放进最后的结果集。简而言之,DFS用了一个level参数来判断是否大于结果集此时的长度,以决定是否需要再添加新的subarray来存放下一层的节点值。
JavaScript实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 var  levelOrder = function (root ) {let  res = [];if  (root === null ) return  res;helper (res, root, 0 );return  res;var  helper = function (res, root, level ) {if  (root === null ) return ;if  (level >= res.length ) {push ([]);push (root.val );helper (res, root.left , level + 1 );helper (res, root.right , level + 1 );
相关题目 1 2 3 102. Binary Tree Level Order Traversal