LeetCode-113、路径总和 II-中等

LeetCode-113、路径总和 II-中等

给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。

说明:叶子节点是指没有子节点的节点。

示例:
给定如下二叉树,以及目标和 sum = 22,

              5
             / \
            4   8
           /   / \
          11  13  4
         /  \    / \
        7    2  5   1

返回:

[
   [5,4,11,2],
   [5,8,4,5]
]

代码:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def pathSum(self, root: TreeNode, sum: int) -> List[List[int]]:
        def func(cur, path, num):
            path.append(cur.val)
            if cur.val == num and cur.left is None and cur.right is None:
                road.append(path)
            if cur.left:
                func(cur.left, path[:], num-cur.val)
            if cur.right:
                func(cur.right, path[:], num-cur.val)
        road = []
        if root:
            func(root, [], sum)
        return road

发布了209 篇原创文章 · 获赞 48 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/clover_my/article/details/104268087