例如:
 给定二叉树: [3,9,20,null,null,15,7],
    3
    / \
   9  20
     /  \
    15   7
 返回:
[3,9,20,15,7]
分析:这就是一个在数据结构中为广度优先遍历的方法,先从跟节点开始,在从根节点的子节点开始,在分别取根节点的子节点.......以此循环遍历。
就实例而言:我创建了两个数组:queue为临时数组。res为最终数组。
先将3放入最终数组中,再将子节点9,20放在临时数组中。此时9为临时数组中根节点。
则将9放在最终数组中,再将子节点null,null放到临时数组中(为空)。此时20为临时数组中根节点。
则将20放在最终数组中,再将子节点15,7放在临时数组中。此时15为临时数组根节点
......................................................................以此循环。
实现代码
/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number[]}
 */
var levelOrder = function(root) {
       if(!root){
         return []
       }
   
         let queue = [];let res = []
       queue.push(root)
       while(queue.length!=0){
           node = queue.shift()
           res.push(node.val)
           if(node.left){
               queue.push(node.left)
           }
           if(node.right){
               queue.push(node.right)
           } 
       }
              return res;
      
};shift是取数组最走前面的元素(删掉数组最前边元素,并返回该元素的值)










