递归 全局变量记录数目
用一个数组记录此前达到的所有结果值
每次都在以前的结果上 加上当前root的val
加完 如果右等于目标值的 全局变量+1
而最后还需要单独加入一个root的val元素再递归下一层
返回全局变量
class Solution:
def __init__(self):
self.res = 0
self.target = 0
def pathSum(self, root: TreeNode, sum: int) -> int:
self.target = sum
self.rec(root,[])
return self.res
def rec(self,root,lastres):
if root == None:
return 0
else:
for i in range(len(lastres)):
lastres[i] += root.val
if lastres[i] == self.target:
self.res += 1
if root.val == self.target:
self.res += 1
self.rec(root.left,lastres+[root.val])
self.rec(root.right,lastres+[root.val])