计算路径总和2,比较简单,传入的数据为到达当前节点的总和
class Solution:
"""
找到所用路径,从根节点到叶节点
"""
def __init__(self):
self.tempList = [] # 保存当前访问的节点
self.res = []
def pathSum(self, root: TreeNode, sum: int) -> List[List[int]]:
self.sum = sum
self.dfs(root, 0)
return self.res
def dfs(self, root: TreeNode, tempSum: int) -> None:
if root is None:
return
tempSum += root.val
self.tempList.append(root.val)
if tempSum == self.sum and root.left is None and root.right is None:
self.res.append(self.tempList[:])
else:
self.dfs(root.left, tempSum)
self.dfs(root.right, tempSum)
self.tempList.pop() # 默认删除最后一个元素,无论是否是叶子节点都要删除
return