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

相关推荐
evans在进步1 分钟前
LeetCode 53 最大子数组和:一次遍历掌握 Kadane 算法
算法·leetcode·职场和发展
山甫aa2 分钟前
日志技术 Logback + Slf4j —— 从零开始的 Web 后端学习
java·后端·学习·web·logback
小七在进步7 分钟前
数据结构:选择排序
数据结构·算法·排序算法
炎武丶航11 分钟前
汽车功能测试学习(2):LDW车道偏离预警
功能测试·学习·汽车
Logintern0912 分钟前
【AGV】openTCS学习
学习·物流·agv
wzq11_66619 分钟前
云计算运维学习day22——Ansible-Roles
运维·学习·云计算
Nil20830 分钟前
leetcode 230二叉搜索树中第k小的元素
算法·leetcode·职场和发展
被怪兽吃掉了30 分钟前
5.2.1一维组数定义方式
开发语言·c++·算法
minglie130 分钟前
espidf的esp32版的websocketServer
学习
不会就选b33 分钟前
Linux之线程进阶---封装信号量
数据结构·算法