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

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

  1. 3
  2. / \
  3. 9 20
  4. / \
  5. 15 7
  6. 返回:
  7. [3,9,20,15,7]

image.png

思路

为什么使用队列?

  1. levelSize是当前节点个数
  2. 每次出队一个
  3. node.val **获得第一个的值**
  4. 左子树入队
  5. 右子树入队

    var levelOrder = function (root) {
    if (!root) return [];
    
    const queue = [root];
    const res = [];
    
    while (queue.length !== 0) {
     const node = queue.shift();
     res.push(node.val);
     if(node.left) queue.push(node.left);
     if(node.right) queue.push(node.right);
    }
    
    return res
    };