给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。
# 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: TreeNode, target: int) -> List[List[int]]:
if not root:
return []
res = []
node = root
cur = [root.val]
#构造递归
def dfs(node, cur):
#递归终止条件
if not (node.left or node.right):
if sum(cur) == target:
res.append(cur)
return
#情况1
if node.left:
dfs(node.left, cur+[node.left.val])
#情况2
if node.right:
dfs(node.right, cur+[node.right.val])
#调用递归
dfs(node, cur)
return res