跳到主要内容

102. [✔][M]二叉树的层序遍历

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

示例 1:

img

输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]

示例 2:

输入:root = [1]
输出:[[1]]

示例 3:

输入:root = []
输出:[]

提示:

  • 树中节点数目在范围 [0, 2000]
  • -1000 <= Node.val <= 1000

题解:

bfs遍历框架

// @ts-ignore
function levelOrder(root: TreeNode | null): number[][] {

let res: number[][] = [];

// @ts-ignore
let queue: TreeNode[] = [];

if (root !== null) {
queue.push(root);
}

while (queue.length > 0) {
let size = queue.length;
// @ts-ignore
let array: number[] = [];

for (let i = 0; i < size; i++) {
let curr = queue.shift();
array.push(curr.val);
if (curr.left !== null) {
queue.push(curr.left)
}
if (curr.right !== null) {
queue.push(curr.right)
}
}
res.push(array);
}

return res;
};
// @lc code=end