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
热门推荐
AI赋能助力教学,飞盘运动玩转课堂——上海中学体育组教研活动探索教学新路径
蒙脱石的主要作用是什么?蒙脱石在养猪中有这7大好处
福建做大做强新兴产业集群 奔向万亿目标
强龙头、补链条、聚集群 福建福鼎锂电产业蓬勃发展
脑干损伤的后果有哪些危害
坐骨结节滑囊炎的症状体征、影像表现、鉴别诊断及治疗原则
期货人必看的十本书
白花油:传承与现代应用的完美结合
力偶矩:揭秘旋转力背后的秘密
实用抗肿瘤中药学│穿山龙
人大代表创建社区养老中心 提升老年人生活质量
厦门房票新政:跨区购房不再是梦
OM1、OM2、OM3、OM4、OM5多模光纤类型区别对比
☯ 八字命带桃花的总概率竟然高达 1/2【玄学推演】
什么是发动机功率性能指标
家具打磨房专用除尘设备:三种湿式除尘方案详解
文丘里湿式除尘器特点、原理和应用
AI养殖:用人工智能驱动畜牧业的变革
汉服的五种形制:传统服饰的多样性与美学
鸭的品种有哪些?
如何避免投机行为带来的风险?这些风险有哪些规避策略?
如何理解投机在投资中的作用?这种作用如何有效发挥?
探秘蒙脱石

最近6个月连摘4项大奖,荣誉等身的樊振东,了不起!
热海温泉:德川家康钟爱的日本著名温泉胜地
Flat White和拿铁的区别:不只是奶泡那么简单
老旧小区加装电梯的利弊有哪些?
中场制胜:解析现代足球中的核心中场类型与代表球员
如何进行项目试点管理
2万元买房!辽宁阜新引发热议,20年人口流失24万