zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    计算机是如何启动的
    比特币
    区块链技术
    哈夫曼树与哈夫曼编码
    Prim Algoritm(最小生成树)
    机器学习概述总览
    线性查找算法(BFPRT)
    DFS(深度优先搜索)
    BFS(广度优先搜索)
    (Dijkstra)迪杰斯特拉算法-最短路径算法
  • 原文地址:https://www.cnblogs.com/redzzy/p/13896337.html
Copyright © 2011-2022 走看看