111. Minimum Depth of Binary Tree

Easy

Given a binary tree, find its minimum depth.

The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.

Note: A leaf is a node with no children.

Example 1:

Input: root = [3,9,20,null,null,15,7]
Output: 2

Example 2:

Input: root = [2,null,3,null,4,null,5,null,6]
Output: 5

Constraints:

  • The number of nodes in the tree is in the range [0, 10^5].

  • -1000 <= Node.val <= 1000

解題


/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func minDepth(root *TreeNode) int {
    return dfs(root)
}
func dfs(root *TreeNode)int {
    if root == nil{
        return 0
    }

    if root.Left == nil{
        return 1 + dfs(root.Right)
    }
    
    if root.Right == nil{
        return 1 + dfs(root.Left)
    }

    return 1 + min(dfs(root.Left),dfs(root.Right))
}

func min(a,b int)int{
    if a < b{ return a }
    return b
}

Last updated