LeetCode 559. N 叉树的最大深度
题目描述
思路分析
解法一:深度优先遍历(推荐)
核心思路:
- 递归计算每个子节点的深度。
- 当前节点深度等于所有子节点深度最大值 + 1。
- 空节点深度为 0。
复杂度分析:
- 时间复杂度:O(n),其中 n 表示节点数量。
- 空间复杂度:O(h),其中 h 表示树高。
class Solution {
public int maxDepth(Node root) {
if (root == null) {
return 0;
}
int maxChild = 0;
for (Node child : root.children) {
// 递归计算子树深度
maxChild = Math.max(maxChild, maxDepth(child));
}
return maxChild + 1;
}
}
func maxDepth(root *Node) int {
if root == nil {
return 0
}
maxChild := 0
for _, child := range root.Children {
// 递归计算子树深度
depth := maxDepth(child)
if depth > maxChild {
maxChild = depth
}
}
return maxChild + 1
}
相似题目
| 题目 | 难度 | 考察点 |
|---|---|---|
| 104. 二叉树的最大深度 | 简单 | DFS/BFS |
| 559. N 叉树的最大深度 | 简单 | DFS/BFS |
| 590. N 叉树的后序遍历 | 简单 | 递归 |
| 589. N 叉树的前序遍历 | 简单 | 递归 |
| 429. N 叉树的层序遍历 | 中等 | BFS |
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议,转载请注明出处!

