| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | package main// type TreeNode struct {// 	Val   int// 	Left  *TreeNode// 	Right *TreeNode// }// func minInt(x, y int) int {// 	if x < y {// 		return x// 	}// 	return y// }func minDepthIter(root *TreeNode, depth int) int {	if root.Left == nil && root.Right == nil {		return depth	}	if root.Left == nil {		return minDepthIter(root.Right, depth+1)	}	if root.Right == nil {		return minDepthIter(root.Left, depth+1)	}	return minInt(minDepthIter(root.Left, depth+1), minDepthIter(root.Right, depth+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	}	return minDepthIter(root, 1)}// func main() {// 	/**// 	 * t1:  5// 	 *       \// 	 *        4// 	 *       / \// 	 *      2   3// 	 */// 	t1rl := TreeNode{2, nil, nil}// 	t1rr := TreeNode{3, nil, nil}// 	t1r := TreeNode{4, &t1rl, &t1rr}// 	t1 := &TreeNode{5, nil, &t1r}// 	fmt.Println(minDepth(t1))// 	fmt.Println(minDepth(nil))// }
 |