N 叉树的层序遍历详解与代码实现
创作时间:
作者:
@小白创作中心
N 叉树的层序遍历详解与代码实现
引用
CSDN
1.
https://m.blog.csdn.net/yq20210216/article/details/145608598
N叉树的层序遍历是算法和数据结构中的一个重要概念,广泛应用于计算机科学和软件工程领域。本文将详细介绍如何通过广度优先搜索(BFS)实现N叉树的层序遍历,并提供完整的代码示例。
1.题目
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。
树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。
示例 1:
**输入:**root = [1,null,3,2,4,null,5,6]
**输出:**[[1],[3,2,4],[5,6]]
示例 2:
**输入:**root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
**输出:**[[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]
2.思路
层序遍历,BFS
3.代码
/*
// 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:
// 该函数用于对 N 叉树进行层序遍历,返回每一层节点值组成的二维向量
vector<vector<int>> levelOrder(Node* root) {
// 用于存储最终的层序遍历结果,是一个二维向量,每一行代表树的一层
vector<vector<int>> ret;
// 如果根节点为空,说明树为空,直接返回空的结果向量
if(!root) return ret;
// 定义一个队列,用于辅助进行层序遍历,队列中存储的是节点指针
queue<Node*> q;
// 将根节点加入队列,作为层序遍历的起始点
q.push(root);
// 当队列不为空时,继续进行层序遍历
while(q.size()){
// 获取当前队列的大小,这个大小代表了当前层的节点数量
int size = q.size();
// 用于存储当前层的节点值
vector<int> tmp;
// 遍历当前层的所有节点
for(int i = 0; i < size; ++i){
// 获取队列头部的节点
Node* p = q.front();
// 将队列头部的节点从队列中移除
q.pop();
// 将当前节点的值加入到存储当前层节点值的向量中
tmp.push_back(p->val);
// 遍历当前节点的所有子节点
for(int j = 0; j < p->children.size(); ++j)
// 将当前节点的子节点加入队列,以便后续处理
q.push(p->children[j]);
}
// 将存储当前层节点值的向量加入到最终结果向量中
ret.push_back(tmp);
}
// 返回最终的层序遍历结果
return ret;
}
};
本文原文来自CSDN
热门推荐
打造高效与舒适并存的办公空间:办公室装修设计全攻略
【深圳首台】国产纳米刀消融手术在暨南大学附属深圳华侨医院成功开展
云计算探索-剖析虚拟化技术
棕榈油期货基本分析(棕榈油期货基本分析报告)
“看了20套终于上车”!年轻人买房新思路:大小和新旧不重要
当米哈游站在十字路口
Excel汇总相同项并统计数量的三种方法
成年人血压正常范围是多少?一文读懂血压管理要点
2024布艺沙发清洁与保养指南
沙垫怎么选?
贷款的房子房产证是放在银行的吗
闲鱼怎么让买家交押金
金黄酥脆的日式炸猪排,在家也能做出日料店的味道,快来看看怎么做
完美香煎猪扒:简单调味与烹饪技巧详解
Aug是几月?12个月份的英文缩写全解析
老年人脑梗后用什么食疗对肺部感染有帮助
旅游该如何规划市场需求
监控录像存储容量计算方法详解
网上自助换驾驶证需要体检报告吗?办理流程详解
网络暴力致人自杀的归责分析
格斗游戏哪个好 十大经典格斗游戏推荐
皮肤科医生解析:4种不同类型痘痘的成因与治疗方式
高中数学立体几何知识点总结
宅家健身逆袭秘诀:就一根弹力带~
智能手表充电难题:一闪一闪的警示与解决之道
益阳产业规划与政策支持技术创新与企业发展
猕猴桃催熟的秘密:学会这样做,几天快速变软
2025年高考复读生将超过500万人?!这些院校已明确不招复读生!
绣球花的多重寓意:从纯洁到自由的十二重花语
百万医疗险和惠民保冲突吗?一文详解两者关系