您的位置:首页 > 编程语言 > Python开发

leetcode之Path Sum

2015-12-30 10:20 561 查看
采用的策略跟path sum ii的是一样的,额,毕竟先做出来的是ii,然后返回来做1.都是先把所有的根到叶的路径列出来,最后再来计算。代码如下:
# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
def hasPathSum(self, root, sum):
"""
:type root: TreeNode
:type sum: int
:rtype: bool
"""
pathlist = []
def showpath(list1, root):
if not root:
return []
list2 = list1[::]
if list2 == []:
list2.append(root.val)
else:
list2.append(root.val)
if not root.left and not root.right:
pathlist.append(list2)
else:
if root.left:
list1 = list2
showpath(list1, root.left)
if root.right:
list1 = list2
showpath(list1, root.right)
return pathlist
s =  showpath([], root)
pathlist1 = []
if s == []:
return False
for i in s:
sumofall = 0
for j in i:
sumofall += j
if sumofall == sum:
return True
else:
return False
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息