【每天学习一点算法 2025/12/19】二叉树的层序遍历

每天学习一点算法 2025/12/19

题目:二叉树的层序遍历

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

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

输出:\[3,9,20,15,7]

emmmmmmmm,层序遍历就是前几个二叉树相关问题里面的迭代法,这题目顺序对吗?

OK,层序遍历主要就是利用队列存储节点,然后循环队列的过程中将子节点入队列从而实现逐层拓展遍历二叉树。

typescript 复制代码
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)

相关推荐
JieE2127 小时前
LeetCode 56. 合并区间|超清晰 JS 图解思路,面试高频区间题
javascript·算法·面试
Jack2015 小时前
HarmonyOS开发中错误处理策略:网络异常统一处理
算法
小小杨树17 小时前
读懂色彩:拍照调色不再难
算法·计算机视觉·配色
JieE2121 天前
LeetCode 226. 翻转二叉树|JS 递归超详细拆解,二叉树入门经典题
javascript·算法
JieE2121 天前
LeetCode 104. 二叉树的最大深度|递归思路超详细拆解
javascript·算法
vivo互联网技术2 天前
CVPR 2026 | 全新强化学习框架 BeautyGRPO:重塑真实人像
算法·大模型·cvpr·影像
Darling噜啦啦2 天前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
用户497863050732 天前
(一)小红的数组操作
算法·编程语言
怕浪猫2 天前
Electron 系列文章封面图
算法·架构·前端框架