https://leetcode.com/problems/minimum-depth-of-binary-tree/description/
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:
Given binary tree [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
return its minimum depth = 2.
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
import sys
class Solution(object):
def minDepth(self, root):
"""
:type root: TreeNode
:rtype: int
"""
if not root:
return 0
self.min_depth = sys.maxint
self.helper(root, 1)
return self.min_depth
def helper(self, root, curr):
if not root:
return
elif root.left == None and root.right == None:
if curr < self.min_depth:
self.min_depth = curr
return
else:
self.helper(root.left, curr + 1)
self.helper(root.right, curr + 1)