题目意思很好理解,下面看代码。
获取二叉树的最大深度和最小深度
//获取最小深度
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/