【每天学习一点算法 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)

相关推荐
敬往事一杯酒哈8 小时前
海康 AGV 导航读码器学习
学习
信奥卷王9 小时前
[GESP202609 六级] 分树规划
算法
夏幻灵9 小时前
LeetCode 21:合并两个有序链表——双指针与哑节点详解
算法·leetcode·链表
qq_2842740510 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
徐小黑ACG11 小时前
Golang 基础05 结构体struct
开发语言·算法·golang
码完就睡11 小时前
数据结构——红黑树
数据结构
码爸11 小时前
数据结构详细介绍
数据结构
qq_2842740511 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
Navigator_Z11 小时前
LeetCode //C - 1286. Iterator for Combination
c语言·算法·leetcode