登录
  • #刷题

请问‌‌‍‍‌‍‍‌‍‌‍‍‌‌‌‌‍‍‌‍‌‌‌‌‍‌‌‍‌‌‍‍112.路径总和这道题的解法

熊云天
186
0
以下的解法不可以通过,中文注释的一行必须要写成if path + root.val == sum1

这是为什么呢?path如果上一个递归已经传值并且等于sum1,应该也满足返回条件吧?

多谢各位赐教!

class Solution:

def pathSum(self, root: TreeNode, sum: int) -> int:

if not root:

return 0

res = 0

res += self.solve(root, 0, sum)

res += self.pathSum(root.left, sum)

res += self.pathSum(root.right, sum)

return res

def solve(self, root, path, sum1):

if not root:

return 0

res = 0

print('\npath = ', path)

print('sum1 = ', sum1)

if path == sum1: # 必须要写成 if path + root.val == sum1: 才行?

res += 1

print('path2 = ', path)

print('root.val = ', root.val)

res += self.solve(root.left, path + root.val, sum1)

res += self.solve(root.right, path + root.val, sum1)

return res
0条回复
热度排序

发表回复