[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

看到别人写得很简单的方法,如果最小值的一方为0,那就取更大的那一个。

def minDepth(self, root):
    if not root: return 0
    d = map(self.minDepth, (root.left, root.right))
    return 1 + (min(d) or max(d))
posted @ 2017-09-03 09:03  banananana  阅读(71)  评论(0编辑  收藏  举报