N叉树遍历基础
⚠️ 内容不完整 - 原文抓取被截断,缺少递归遍历(DFS)和层序遍历(BFS)的具体代码实现部分
相关题目
| LeetCode | 力扣 | 遍历类型 |
|---|---|---|
| 589. N-ary Tree Preorder Traversal | 589. N 叉树的前序遍历 | 前序遍历(DFS) |
| 590. N-ary Tree Postorder Traversal | 590. N 叉树的后序遍历 | 后序遍历(DFS) |
| 429. N-ary Tree Level Order Traversal | 429. N 叉树的层序遍历 | 层序遍历(BFS) |
前置知识
核心要点
N叉树定义
与二叉树对比:
- 二叉树节点:最多有2个子节点(left, right)
- N叉树节点:有任意个子节点(children 列表)
// 二叉树节点
class TreeNode {
int val;
TreeNode left;
TreeNode right;
}
// N叉树节点
class Node {
int val;
List<Node> children;
}
一句话总结:多叉树结构是二叉树结构的延伸,二叉树是特殊的多叉树。多叉树的遍历就是二叉树遍历的延伸。
森林(Forest)
定义:森林是多个多叉树的集合(单独一棵多叉树也是一个特殊的森林)。
代码表示:
List<Node> forest; // 多个多叉树的根节点列表
遍历方法:只需对每个根节点分别进行 DFS/BFS 遍历,即可遍历森林的所有节点。
应用场景:在 并查集(Union Find)算法中,会同时持有多棵多叉树的根节点,这些根节点的集合就是一个森林。
遍历方法
N叉树遍历同样分为两种:
- 递归遍历(DFS):前序遍历、后序遍历
- 层序遍历(BFS)
⚠️ 原文在 "## 递归遍历(DFS)" 章节开始后内容被截断,具体代码实现缺失。 预计包含:前序遍历框架、后序遍历框架、与二叉树遍历的对比。
相关概念
相关实体
- labuladong:算法学习平台作者