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

102. 二叉树的层序遍历

     

        层序遍历是一种按层次、从左到右依次访问所有节点的算法。其遍历方式与广度优先搜索(BFS)相似,遵循"先进先出"的原则,即先被访问的节点先被处理。由于这种特性与队列的数据结构完全吻合,因此通常采用队列来实现层序遍历。

例如:

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

                                                

        结果是通过层序遍历二叉树得出的。具体过程如下:首先将根节点3入队,然后遍历队列,将当前节点值存入临时数组(用于记录每层结果)。接着将节点3的左右子树依次入队,最后将节点3出队。重复上述过程,直到队列为空,即可得到完整的层序遍历结果。

        代码:

class Solution {
public:vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> ans;if (!root) return ans;queue<TreeNode*> q;q.push(root);while (!q.empty()) {vector<int> temp;int n = q.size();for (int i = 0;i < n;i++) {auto cur = q.front();q.pop();temp.push_back(cur->val);if (cur->left) q.push(cur->left);if (cur->right) q.push(cur->right);}ans.emplace_back(temp);}return ans;}
};

        时间复杂度:O(n),所有节点最多遍历一次

        空间复杂度:O(n),最坏情况下二叉树是满二叉树,将最后一层所有的节点放入临时数组

http://www.xdnf.cn/news/6500.html

相关文章:

  • “光伏+储能+智能调控”,CET中电技术分布式智能微网方案如何实现?
  • 多线程(四)
  • 云服务器的运用自如
  • 数学复习笔记 14
  • [CSS3]属性增强1
  • 回调函数应用示例
  • 网络安全-等级保护(等保) 2-5-1 GB/T 25070—2019 附录B (资料性附录)第三级系统安全保护环境设计示例
  • IEC 60601-2-16:2025 标准解析
  • python打卡day27
  • TCP/IP 知识体系
  • 国标GB/T 12536-90滑行试验全解析:纯电动轻卡行驶阻力模型参数精准标定
  • 【AI大模型学习路线】第二阶段之RAG基础与架构——第七章(【项目实战】基于RAG的PDF文档助手)query搜索与文档排序?
  • win10-django项目与mysql的基本增删改查
  • 从代码学习深度学习 - 实战Kaggle比赛:狗的品种识别(ImageNet Dogs)PyTorch版
  • 关于nginx浏览器访问.php直接被当做文件下载相关问题
  • Github 2025-05-16 Java开源项目日报 Top9
  • OM和SCADA的区别
  • 目标检测指标计算
  • C++ I/O多路复用
  • uniapp自定义日历计划写法(vue2)
  • 生信分析进阶15 - 从GTF文件提取起始密码子、终止密码子、外显子剪切供体和受体
  • 基于大模型的脑出血智能诊疗与康复技术方案
  • 计算机组成原理——数据的表示
  • 使用 Docker 部署 React + Nginx 应用教程
  • 4.2.3 Thymeleaf标准表达式 - 5. 片段表达式
  • mac M芯片运行docker-desktop异常问题
  • 保姆教程-----安装MySQL全过程
  • minio存储文件迁移磁盘
  • SpringBoot + Shiro + JWT 实现认证与授权完整方案实现
  • 《k-means 散点图可视化》实验报告