# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
depthList=[]
def minDepth(self, root):
"""
:type root: TreeNode
:rtype: int
"""
self.depthList=[]
if root==None:return 0
self.depthList.append(1)
self.dfs(root)
return min(self.depthList)
def dfs(self,root):
curdepth=self.depthList[-1]
if root.right!=None or root.left!=None:
self.depthList.pop()
else:return
if root.left!=None:
dep=curdepth+1
self.depthList.append(dep)
self.dfs(root.left)
if root.right!=None:
dep=curdepth+1
self.depthList.append(dep)
self.dfs(root.right)