Leetcode 559. N叉树的最大深度
度是指从根节点到最远叶子节点的最长路径上的节点总数。
例如,给定一个 3叉树
:
我们应返回其最大深度,3。
代码:
/**
* Definition for a Node.
* struct Node {
* int val;
* int numChildren;
* struct Node** children;
* };
*/
//遍历这颗N叉树,如果为空就应该去遍历别的子树,然后找出最大的高度
int *maxDepth(struct Node* root) {
if(root==NULL)
{
return 0;
}
else
{
int m=0;
for(int i=0;i<root->numChildren;i++)
{
int c=maxDepth(root->children[i]);
if(m<c)//找子树的最大深度
{
m=c;
}
}
return m+1;
}
}
反思:
和之前做过求深度的题目最大的不同在于这是N叉树,但是方法都是大同小异的,numsChildren就是当前节点子树的个数,遍历然后按照二叉树的方法递归求深度就可以了
ps:
int* max():将max()函数的值强制转化成整型指针
(int*)max():强制转化:
(类型)(表达式);
指向函数的指针:
int (*f)()=t;