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
热门推荐
全面建成!我国最大石化产业基地!
2024年榆林各学校高考喜报(最全版)
一文让你分清吴中、吴下、吴县、吴江与吴山、东吴与三吴
5E服务器与完美世界服务器,究竟谁更胜一筹?
休息不足导致视力模糊怎么办?医生给出7个实用建议
电工基础知识:强电与弱电的定义、特点及应用
120你真的会打吗?科普关键4步,第3步99%的人都做错了!
躺着刷手机竟致双眼近视差距400度?健康护眼需做好这四点
四合院:北京老城区的文化遗产与生活智慧
监控证据调取流程及要求
满满科技感 数字孪生技术已应用于重庆多个水利工程
公司考勤打卡怎么优化?
关注破伤风,健康共行动!济南市第三人民医院举办专题科普宣传活动
稻盛和夫的12条经营法则
紫砂壶爆砂 紫砂壶为什么会爆砂
根尖囊肿长什么样子?图文详解根尖囊肿的外观特征与治疗方法
直播电商,要变天了
泰达币是如何维持与美元的11锚定的?,神秘面纱:泰达币的本质与承诺
为何说新西兰没几个中国人待得住?网友:待了几个月,都快疯了
喷泉项目规划怎么写范文
汽车变速箱类型全解析:从手动到自动的进化之路
内蒙古十大传统乐器:从马头琴到胡笳,感受草原文化的独特魅力
怀孕低盐高蛋白饮食有哪些好处?
地球是圆的是谁发现的 是谁第一个证明的
腿关节突然疼痛是什么原因
构建文明实践“全民矩阵” 长沙望城让雷锋精神浸润烟火人间
“好奶牛”如何产出好牛奶?一起探秘兵团牧场
养老保险关系转移的流程是怎样的
法定计量单位的规范与全球应用
九华山住宿是住山上好还是山下好?九华山住宿酒店推荐