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

 题目意思很好理解,下面看代码。

获取二叉树的最大深度和最小深度

//获取最小深度
func minDepth(root *TreeNode) int {
    if root == nil {
        //最后返回0,所以结果要+1
        return 0
    }
    if root.Left == nil && root.Right == nil {
        return 1
    }

    //初始化最小值
    minD := math.MaxInt32

    //左子树最小值
    if root.Left != nil {
        minD = min(minDepth(root.Left), minD)
    }
    //右子树最小值
    if root.Right != nil {
        minD = min(minDepth(root.Right), minD)
    }

    return minD + 1
}

func min(x, y int) int {
    if x < y {
        return x
    }
    return y
}

//获取最大深度
func maxDepth(root *TreeNode) int {
    if root == nil {
        //最后返回0,所以结果要+1
        return 0
    }
    return max(maxDepth(root.Left), maxDepth(root.Right)) + 1
}

func max(a, b int) int {
    if a > b {
        return a
    }
    return b
}


参考链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/solution/er-cha-shu-de-zui-da-shen-du-by-leetcode-solution/


版权声明:本文为ma2595162349原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。