给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
示例1:
输入:root = [3, 9, 20, null, null, 15, 7]
输出:[[3],[9,20],[15,7]]
示例 2:
输入:root = [1]
输出:[[1]]
示例 3:
输入:root = []
输出:[]
借助队列结构,先进先出,每次把当前层级的节点 push 进队列中,然后再 shift 出来取值,并存入结果集中。
const levelOrder = (root) => {
const reuslt = []
if (!root) return reuslt
const queue = [root] // 队列
while(queue.length > 0) {
const queueLength = queue.length; // 先取长度,防止
let curLevelVal = []; // 存储当前层级的节点值
for (let i = 0; i < queueLength; i++) {
let node = queue.shift();
curLevelVal.push(node.val)
node.left && queue.push(node.left); // 向 queue 中 push 下一层级的节点
node.right && queue.push(node.right); // 向 queue 中 push 下一层级的节点
}
reuslt.push(curLevelVal)
}
return reuslt
}