111. 二叉树的最小深度 golang

111. 二叉树的最小深度

给定一个二叉树,找出其最小深度。

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

说明: 叶子节点是指没有子节点的节点。

示例:

给定二叉树 [3,9,20,null,null,15,7],
·
3
/
9 20
/
15 7
返回它的最小深度 2.

Code

/**
 * 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
    }

    left := minDepth(root.Left)
    right := minDepth(root.Right)
    
    if left == 0 || right == 0 {
        return left + right + 1
    }

    return min(left, right) + 1
}

func min(a, b int) int {
    if a > b {
        return b
    }
    return a 
}
发布了399 篇原创文章 · 获赞 266 · 访问量 41万+

猜你喜欢

转载自blog.csdn.net/csdn_kou/article/details/105269876