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;

 

posted @ 2020-10-29 13:53  进寸欢喜  阅读(89)  评论(0编辑  收藏  举报