题解 | #二叉树中和为某一值的路径(一)#
二叉树中和为某一值的路径(一)
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)
# 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)
