每天学习一点算法 2025/12/19
题目:二叉树的层序遍历
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]
emmmmmmmm,层序遍历就是前几个二叉树相关问题里面的迭代法,这题目顺序对吗?
OK,层序遍历主要就是利用队列存储节点,然后循环队列的过程中将子节点入队列从而实现逐层拓展遍历二叉树。
function levelOrder(root: TreeNode | null): number[][] {
if (!root) return []
const result: number[][] = [] // 用于存储遍历结果
const queue: Array<TreeNode | null> = [] // 队列用于遍历树节点
queue.push(root) // 初始根节点入队列
// 循环遍历
while (queue.length > 0) {
const len = queue.length // 暂存当前层的节点数
const level = [] // 用于存储当前层节点值
// 循环当前层节点,存储节点值,并拓展下一层节点
for (let i = 0; i < len; i++) {
const node = queue.shift()!
level.push(node.val)
node.left && queue.push(node.left)
node.right && queue.push(node.right)
}
result.push(level)
}
return result
}
题目来源:力扣(LeetCode)
1万+

被折叠的 条评论
为什么被折叠?



