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

【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://buccinator.hfytgp.cn
http://aback.hfytgp.cn
http://aerocar.hfytgp.cn
http://chloritic.hfytgp.cn
http://abetter.hfytgp.cn
http://benzol.hfytgp.cn
http://armstrong.hfytgp.cn
http://actable.hfytgp.cn
http://butterfat.hfytgp.cn
http://blackfeet.hfytgp.cn
http://bearskinned.hfytgp.cn
http://amplexus.hfytgp.cn
http://callow.hfytgp.cn
http://analgesic.hfytgp.cn
http://acetylase.hfytgp.cn
http://breeziness.hfytgp.cn
http://aground.hfytgp.cn
http://antivenin.hfytgp.cn
http://boater.hfytgp.cn
http://alkahest.hfytgp.cn
http://chemoceptor.hfytgp.cn
http://achromycin.hfytgp.cn
http://actuate.hfytgp.cn
http://chrismon.hfytgp.cn
http://cathole.hfytgp.cn
http://acyl.hfytgp.cn
http://brutism.hfytgp.cn
http://chromoplasm.hfytgp.cn
http://amnion.hfytgp.cn
http://baed.hfytgp.cn
http://www.dtcms.com/a/202366.html

相关文章:

  • C++使用max_element()配合distance()求出vector中的最大值及其位置
  • Nvidia - NVLink Fusion
  • 代码随想录算法训练营
  • Vue响应式系统演进与实现解析
  • 集成思想在算法(目标检测)中的体现
  • Python入门手册:Python简介,什么是Python
  • 操作系统----软考中级软件工程师(自用学习笔记)
  • 使用 GitHub Pages 部署单页面应用教程
  • vue路由小案例
  • Failed to resolve import “echarts“ from “src/views/HistoricalData.vue“.
  • 第 4 章:网络与总线——CAN / Ethernet / USB-OTG
  • 国产视频转换LT6211UX:HDMI2.0转LVDS/MIPI芯片简介,支持4K60Hz
  • File的使用
  • 聚焦开放智能,抢占技术高地 | 2025 高通边缘智能创新应用大赛第五场公开课来袭!
  • React表单开发的瑞士军刀:Formik与Yup实战指南
  • Android7 Input(八)App Input事件接收器InputEventReceiver
  • Visual Studio 2019/2022:当前不会命中断点,还没有为该文档加载任何符号。
  • IP风险画像技术:如何用20+维度数据构建网络安全护城河?
  • Web Scraping vs API:选择正确数据提取方法的终极指南(二)
  • WebSocket心跳机制
  • 深度解析Vue项目Webpack打包分包策略 从基础配置到高级优化,全面掌握性能优化核心技巧
  • hghac集群服务器时间同步(chrony同步)
  • IntentUri页面跳转
  • 高密度服务器机柜散热方案:高风压风机在复杂风道中的关键作用与选型要点
  • AI应用交付厂商F5打造六大解决方案,助用户应对复杂挑战
  • 【razor】回环结构导致的控制信令错位:例如发送端收到 SR的问题
  • 频率非周期性失稳
  • 10.17 LangChain v0.3核心机制解析:从工具调用到生产级优化的实战全指南
  • 鸿蒙开发进阶:深入解析ArkTS语言特性与高性能编程实践
  • C#学习10——泛型