動機

複習dfs

Problem

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, 105].
  • -1000 <= Node.val <= 1000

Sol

def dfs(r):
    if r is None:
        return float('inf')
    elif r.left is None and r.right is None:
        return 1
    else:
        return min(dfs(r.left),dfs(r.right))+1
class Solution:
    def minDepth(self, r: TreeNode) -> int:
        if not r:
            return 0
        else:
            return dfs(r)