
 思路:
 dfs遍历每一个路径
 用now tempsun和tempnode分别记录当前节点,累计和,以及累计节点
 叶子节点判断结束
 否则有左右孩子的话就继续dfs
注意root为none的情况
src:
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def pathSum(self, root: Optional[TreeNode], targetSum: int) -> List[List[int]]:
        if root is None:
            return []
        ans = []
        def dfs(now, tempsum, tempnode):
            # 若到达叶子节点
            if now.left is None and now.right is None:
                if tempsum == targetSum:
                    ans.append(tempnode)
                return
            
            # 若未到达叶子节点
            if now.left is not None:
                new_tempnode = copy.deepcopy(tempnode)
                new_tempnode.append(now.left.val)
                dfs(now.left, tempsum + now.left.val, new_tempnode)
            if now.right is not None:
                new_tempnode = copy.deepcopy(tempnode)
                new_tempnode.append(now.right.val)
                dfs(now.right, tempsum + now.right.val, new_tempnode)
        
        dfs(root, root.val, [root.val])
        return ans
总结:
 树的dfs遍历









