求一颗二叉树的最小深度,考虑以下情况
如果根节点为空,返回0;
如果根节点无左右子节点,返回1;
否则,如果左节点不为空,返回左子树和最小值的更小值;如果右节点不为空,返回右子树和最小值的更小值
时常温习下吧,哈哈哈哈哈
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func minDepth(root *TreeNode) int {
if root == nil{
return 0
}
if root.Left == nil && root.Right == nil{
return 1
}
minV := math.MaxInt32
if root.Left != nil{
minV = min(minDepth(root.Left), minV)
}
if root.Right != nil{
minV = min(minDepth(root.Right), minV)
}
return minV+1
}
func min(a, b int)int{
if a > b{
return b
}
return a
}
|