从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行

例如:
给定二叉树: [3,9,20,null,null,15,7],

  1. 3<br /> / \<br /> 9 20<br /> / \<br /> 15 7<br />返回其层次遍历结果:

[
[3],
[9,20],
[15,7]
]

思路

  1. 和层序遍历一致
  2. levelSize = q.length;
  3. 每次使用temp数组收集整层的元素
  4. 最后再push到结果数组

    const levelOrder = function (root) {
    if (!root) return [];
    
    const q = [root];
    const ret = [];
    
    while (q.length !== 0) {
     let levelSize = q.length;
     let temp = [];
     let i = 0;
     for (; i < levelSize; i++) {
       let node = q.shift();
       temp.push(node.val);
       if(node.left) q.push(node.left);
       if(node.right) q.push(node.right);
     }
     ret.push(temp);
    }
    return ret;
    };