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
热门推荐
新加坡签证过境全攻略,快速办理流程详解及注意事项
医生郑重强调:肺部有结节的人,身上基本有这4个表现,千万注意
全球车企智能化转型加速 自动驾驶是“重头戏”
同是兼并,味儿不同:中国历代土地兼并特色概述
PLC、DCS 和 SCADA 系统如何与 AI 技术深度融合?
日语的语序与中文有何不同?
古代盛世到底是什么样的?盛世会是百姓之福吗?
用电高压锅风险大吗?提防四大弊端隐患!
为什么现在的轻薄本都没有网线接口了?
AIO之万兆网卡直通OpenWrt安装
中国十大常见预制菜排行榜!
做出美味自制酸腌菜,享受营养与口感(掌握简易的酸腌方法,轻松制作属于你的腌菜)
别让晚睡成为孩子假期的“绊脚石”!如何科学调整作息?
短期拆借的方式有哪些?这些方式在实际操作中有哪些注意事项?
发际线后移应该挂什么科?皮肤科医生来解答
新生儿脐带护理全攻略:护理长传授四步清洁法
葫芦娃背后的教育意义:传统与现代价值观的融合
长期熬夜真的会“变傻”吗?
IGBT的短路保护和过流保护机制详解
利率低至3.6% 河南多家银行“内卷”消费贷
超高评分的经典韩剧推荐,助你拯救剧荒!
转账转错人别慌!追回钱款这样做→
科目二的考试顺序(科目二的考试顺序是按预约的号排的吗)
如何找小众项目经理工作
微波炉如何保养?日常使用后保养的正确方法是什么?
养老财富规划师:为银色时代护航的专业人士
头癣怎么办?治疗方案与复查时间全攻略
手里有异物挂什么科
天帝和玉帝:中国神话中至高无上的神祇
债务公司上门催债合法吗?一文详解催债行为的法律边界