二叉树最大深度和最小深度

Posted Ivan B.G. Liu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树最大深度和最小深度相关的知识,希望对你有一定的参考价值。

最大深度:

   int maxDepth(TreeNode *root)
    {
        if(root == NULL)
            return 0;
        if(root->left == NULL && root->right == NULL)
            return 1;
        int left = maxDepth(root->left) + 1;
        int right = maxDepth(root->right) + 1;
        return left>right ? left : right;    //返回二者之中较大数
    }

最小深度:

    int minDepth(TreeNode * root)
    {
        if(root == NULL)
            return 0;
        if(root->left == NULL && root->right == NULL)
            return 1;
        int left = minDepth(root->left) + 1;
        int right = minDepth(root->right) + 1;
        if(left == 1)          //等于1说明没有左子树有右子树,为避免干扰结果,另其为一个最大数
            left = INT_MAX;
        if(right == 1)         //等于1说明没有右子树有左子树,为避免干扰结果,另其为一个最大数
            right = INT_MAX;
        return left > right ? right : left;    //返回二者之中较小数
    }

 

以上是关于二叉树最大深度和最小深度的主要内容,如果未能解决你的问题,请参考以下文章

二叉树的最大和最小深度

二叉树最大深度和最小深度

递归求取二叉树最小深度和最大深度

LeetCode Java刷题笔记— 111. 二叉树的最小深度

LeetCode Java刷题笔记— 111. 二叉树的最小深度

LeetCode Java刷题笔记—111. 二叉树的最小深度