[LeetCode]111. Minimum Depth of Binary Tree
111. Minimum Depth of Binary Tree
DFS
class Solution(object):
res = 1e9
def minDepth(self, root):
"""
:type root: TreeNode
:rtype: int
"""
def dfs(node, depth):
if not node.left and not node.right:
self.res = min(depth, self.res)
return
if node.left:
dfs(node.left, depth+1)
if node.right:
dfs(node.right, depth+1)
if not root:
return 0
dfs(root, 1)
return self.res
def minDepth(self, root):
if not root: return 0
d = map(self.minDepth, (root.left, root.right))
return 1 + (min(d) or max(d))
关注公众号:数据结构与算法那些事儿,每天一篇数据结构与算法