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

【C++算法】70.队列+宽搜_N 叉树的层序遍历

文章目录

    • 题目链接:
    • 题目描述:
    • 解法
    • C++ 算法代码:


题目链接:

429. N 叉树的层序遍历


题目描述:

32470114704b080506ba0b4e0f8ce472


解法

使用队列层序遍历就可以了。

先入根节点1。queue:1

然后出根节点1,入孩子节点2,3,4,然后统计根节点的孩子节点有3个。queue:2,3,4

然后出2,入2的孩子节点5,6…直到3个孩子都出来。queue:5,6,7,8

此时剩下来的4个元素就是最后一层节点。

535c6ebd8aa4f6ab250f62ef23c6424d


C++ 算法代码:

/*
// Definition for a Node.
class Node {
public:int val;                 // 节点值vector<Node*> children;  // 子节点数组Node() {}                // 默认构造函数Node(int _val) {         // 带值的构造函数val = _val;}Node(int _val, vector<Node*> _children) {  // 带值和子节点的构造函数val = _val;children = _children;}
};
*/class Solution 
{
public:vector<vector<int>> levelOrder(Node* root) {// N叉树的层序遍历算法// 基本思路:使用队列进行广度优先搜索(BFS),逐层处理节点vector<vector<int>> ret; // 存储最终结果,每个内部vector代表一层的节点值queue<Node*> q;          // 用于层序遍历的队列,存储待处理的节点if(root == nullptr) return ret; // 特殊情况:空树,直接返回空结果q.push(root); // 根节点入队,开始遍历while(q.size()) // 只要队列不为空,就继续处理{int sz = q.size(); // 获取当前层的节点数量vector<int> tmp;   // 临时数组,用于存储当前层的所有节点值// 处理当前层的所有节点for(int i = 0; i < sz; i++){Node* t = q.front(); // 获取队首节点q.pop();             // 将节点出队tmp.push_back(t->val); // 记录当前节点的值// 将当前节点的所有子节点入队,为下一层的处理做准备for(Node* child : t->children){if(child != nullptr) // 确保子节点不为空q.push(child);   // 子节点入队}}ret.push_back(tmp); // 将当前层的所有节点值加入结果数组}return ret; // 返回最终的层序遍历结果}
};
http://www.xdnf.cn/news/7693.html

相关文章:

  • 软件架构之-论分布式架构设计及其实现
  • Day122 | 灵神 | 二叉树 | 二叉树的层序遍历 二叉树的锯齿状遍历
  • FactoryBean是什么,Spring如何实现FactoryBean的?
  • mac上将 Excel 文件的扩展名从 .xls 改为 .xlsx 后,打开时报错:“文件格式或文件扩展名无效”。
  • C++初阶-vector的模拟实现1
  • 利用 SQL Server 作业实现异步任务处理:一种简化系统架构的实践方案
  • 自然语言处理
  • 基于R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析技术
  • 足式机器人经典控制常用的ROS库介绍
  • 如何使用AI辅助开发R语言
  • 星闪开发之buttondemo烧录后无效果思路
  • 基于双通道频谱分析的振动信号故障诊断2
  • vite ts vue中增加路由
  • 【HarmonyOS 5】金融应用开发鸿蒙组件实践
  • 基于PyTorch的医学影像辅助诊断系统开发教程
  • unity XCharts插件生成曲线图在UICanvas中
  • python训练 60天挑战-day31
  • 查看mysql配置文件my.cnf的位置
  • Docker-Harbor 私有镜像仓库使用指南
  • MyBatis 动态 SQL 标签详解教程:_set_、_trim_、_sql_、_choose_、_when_
  • 抢占短剧商业蓝海!AI 驱动 CPS 系统开发定制赋能高效变现
  • 数据结构*排序
  • tigase源码学习笔记-事件总线EventBus
  • 跨境外贸电商供应链一体化ERP管理系统
  • 波次拉料在精益生产中下的应用
  • OpenHarmony 5.0设置应用设置手势导航开关打开后重新关闭导航栏和设置界面重合
  • onlyoffice 源码 调试说明 -ARM和x86双模式安装支持
  • [Harmony]获取设备参数
  • SpringBoot 商城系统高并发引起的库存超卖库存问题 乐观锁 悲观锁 抢购 商品秒杀 高并发
  • 机械安全标准示例说明