当前位置: 首页 > news >正文

【LeetCode】102 - 二叉树的层序遍历

题目描述

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

解题思路

使用 BFS(广度优先搜索)的思想,维护当前层的所有节点,逐层处理:

  1. 将根节点加入当前层节点列表
  2. 遍历当前层所有节点,收集它们的值
  3. 收集当前层所有节点的子节点作为下一层
  4. 重复步骤2-3直到没有下一层

核心代码

public List<List<Integer>> levelOrder(TreeNode root) {List<List<Integer>> result = new ArrayList<>();if (root == null) {return result;}List<TreeNode> currentRowNodeList = new ArrayList<>();currentRowNodeList.add(root);while (true) {// 收集当前层的值List<Integer> currentRowValList = new ArrayList<>();for (TreeNode node : currentRowNodeList) {currentRowValList.add(node.val);}result.add(currentRowValList);// 收集下一层节点List<TreeNode> nextNodeList = new ArrayList<>();for (TreeNode treeNode : currentRowNodeList) {if (treeNode.left != null) {nextNodeList.add(treeNode.left);}if (treeNode.right != null) {nextNodeList.add(treeNode.right);}}if (nextNodeList.isEmpty()) {break;}currentRowNodeList = nextNodeList;}return result;
}

复杂度分析

  • 时间复杂度: O(n),n 为二叉树节点数,每个节点访问一次
  • 空间复杂度: O(n),最坏情况下需要存储一层的所有节点

示例验证

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

算法按层级正确遍历,符合预期结果。

http://www.dtcms.com/a/324886.html

相关文章:

  • MVC结构变种——第三章核心视图及控制器的整体逻辑
  • idea中使用maven造成每次都打印日志
  • matlab实现随机森林算法
  • [SUCTF 2019]Pythonginx
  • JS中typeof与instanceof的区别
  • 【精彩回顾·成都】成都 User Group×柴火创客空间:开源硬件驱动 AI 与云的创新实践!
  • JS 注释类型
  • ADK[3]历史对话信息保存机制与构建多轮对话机器人
  • scanpy单细胞转录组python教程(四):单样本数据分析之降维聚类及细胞注释
  • 【Canvas与戳记】黑底金Z字
  • 正确使用SQL Server中的Hint(10)— 常用Hint(2)
  • Spring WebSocket安全认证与权限控制解析
  • 研究揭示 Apple Intelligence 数据处理中可能存在隐私漏洞
  • 【redis初阶】------List 列表类型
  • 通过脚本修改MATLAB的数据字典
  • 【15】OpenCV C++实战篇——fitEllipse椭圆拟合、 Ellipse()画椭圆
  • 【人工智能99问】BERT的原理什么?(23/99)
  • Elasticsearch 保姆级入门篇
  • SpringBoot查询方式全解析
  • 在Mac上搭建本地AI工作流:Dify与DeepSeek的完美结合
  • 数字图像处理2——图像增强
  • AI(1)-神经网络(正向传播与反向传播)
  • 【RL第七篇】PPO训练策略,如何使PPO训练稳定?
  • unity中如何让原人物动画兼容新人物的动画
  • 异步问题的概念和消除问题技巧
  • Graph-R1:一种用于结构化多轮推理的智能图谱检索框架,并结合端到端强化学习
  • 【面板数据】全国及各省份技术市场成交额数据-dta+xlsx格式(2001-2023年)
  • nginx+lua+redis案例
  • 《Webpack与Vite热模块替换机制深度剖析与策略抉择》
  • 消息生态系统全景解析:技术架构、核心组件与应用场景