本文共 1356 字,大约阅读时间需要 4 分钟。
version 1
# Definition for a binary tree node.class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def __init__(self): self.hasFind = False self.target = None def hasPathSum(self, root, sum): """ :type root: TreeNode :type sum: int :rtype: bool """ if not root: return False self.target = sum self.dfs(root, root.val) return self.hasFind def dfs(self, bt: TreeNode, s): if self.hasFind: return if s == self.target and not bt.left and not bt.right: self.hasFind = True return if bt.left: self.dfs(bt.left, s + bt.left.val) if bt.right: self.dfs(bt.right, s + bt.right.val)
version 2
# Definition for a binary tree node.class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def hasPathSum(self, root, sum): """ :type root: TreeNode :type sum: int :rtype: bool """ if not root: return False elif root.val == sum and not root.left and not root.right: return True return self.hasPathSum(root.left, sum - root.val) or self.hasPathSum(root.right, sum - root.val)
转载地址:http://vbrgn.baihongyu.com/