题解 | #二叉树中和为某一值的路径(一)#

二叉树中和为某一值的路径(一)

http://www.nowcoder.com/practice/508378c0823c423baa723ce448cbfd0c

# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

#

# @param root TreeNode类 
# @param sum int整型 
# @return bool布尔型
#
class Solution:
    
    def hasPathRec(self, root, sumPath, eles):
        
        eles.append(root.val)        
        fLeaf = root.left is None and root.right is None
        if fLeaf and sum(eles) == sumPath:
            print(eles)
            return True
        fLeft = fRight = False
        if root.left:
            fLeft = self.hasPathRec(root.left, sumPath, eles)
        if root.right:
            fRight = self.hasPathRec(root.right, sumPath, eles)
        
        eles.pop()
        return fLeft or fRight
        
    def hasPathSum(self, root, sum):
        # write code here
        if not root:
            return False
        eles = []
        return self.hasPathRec(root, sum, eles)
        
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务