题目描述:
给定一个 N 叉树,找到其最大深度。
最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。
例如,给定一个 3叉树 :

我们应返回其最大深度,3。
说明:
- 树的深度不会超过
1000。 - 树的节点总不会超过
5000。
思路:
1、递归法
/**
* Definition for a Node.
* struct Node {
* int val;
* int numChildren;
* struct Node** children;
* };
*/
// 递归思路
int maxDepth(struct Node* root) {
if(root == NULL)
return 0;
int max_depth = 0;
int max;
for(int i=0; i<root->numChildren; ++i)
{
max = maxDepth(root->children[i]);
max_depth = (max_depth > max? max_depth : max);
}
return max_depth+1;
}
2、BFS 广度优先遍历

该博客介绍了如何解决LeetCode的559题,即找到N叉树的最大深度。提供了递归、BFS(广度优先遍历)和DFS(深度优先遍历)三种C语言实现方法。BFS利用队列进行遍历,DFS则通过结构体存储节点的最大深度。
最低0.47元/天 解锁文章
1886

被折叠的 条评论
为什么被折叠?



