Skip to content

Latest commit

 

History

History
33 lines (32 loc) · 1.07 KB

98. 二叉树中和为某一值的路径.md

File metadata and controls

33 lines (32 loc) · 1.07 KB

给你二叉树的根节点 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