给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
思路:
1.创建一个数组result,创建一个队列q,将root加入队列
2. 每次从队列中取出一个节点,将该节点的左右节点放入队列
每次while循环必须将队列中所有节点遍历完,才能进行下一次循环
while(q.length!=0){
for (let i = 0; i <q.length; i++) {
node=q.shift()
result.push(node.val)
if(node.left) result.push(node.left)
if(node.right) result.push(node.right)
}
}
var levelOrder = function(root) {
const result=[]
if(!root) return result
let q=[]
q.push(root)
while(q.length!=0){
let currentLevel=q.length
result.push([])
for (let i = 0; i < currentLevel; i++) {
node=q.shift()
result[result.length-1].push(node.val)
if(node.left) q.push(node.left)
if(node.right) q.push(node.right)
}
}
return result
};