天天看點

打卡群刷題總結0812——路徑總和 II

題目:113. 路徑總和 II

連結:https://leetcode-cn.com/problems/path-sum-ii

給定一個二叉樹和一個目标和,找到所有從根節點到葉子節點路徑總和等于給定目标和的路徑。

說明: 葉子節點是指沒有子節點的節點。

示例:

給定如下二叉樹,以及目标和 sum = 22,

5

/ \

4 8

/ / \

11 13 4

/ \ / \

7 2 5 1

傳回:

[

[5,4,11,2],

[5,8,4,5]

]

解題:

1、二叉樹周遊,判斷是否遇到葉子節點,與此同時,sum是否和葉子節點的值相同,是則把路徑添加到結果中。

代碼:

# Definition for a binary tree node.# class TreeNode(object):#     def __init__(self, val=0, left=None, right=None):#         self.val = val#         self.left = left#         self.right = rightclass Solution(object):    def get_sum(self, node, sum, current):        cur2 = copy.copy(current)        cur2.append(node.val)        sum2 = sum - node.val        if not node.left and not node.right:            if sum2 == 0:                self.res.append(cur2)            return        if node.left:            self.get_sum(node.left, sum2, cur2)        if node.right:            self.get_sum(node.right, sum2, cur2)        def pathSum(self, root, sum):        """        :type root: TreeNode        :type sum: int        :rtype: List[List[int]]        """        if not root:            return []        self.res = []        self.get_sum(root, sum, [])        return self.res           

複制

PS:刷了打卡群的題,再刷另一道題,并且總結,确實耗費很多時間。如果時間不夠,以後的更新會總結打卡群的題。

PPS:還是得日更呀,總結一下總是好的。