給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。
說明: 葉子節點是指沒有子節點的節點。
示例:給定如下二叉樹,以及目標和 sum = 22,
5
/ \4 8
/ / \
11 13 4
/ \ / \
7 2 5 1
返回:
[[5,4,11,2],
[5,8,4,5]
]
class
solution
:def
pathsum
(self, root,
sum)
:"""
:type root: treenode
:type sum: int
:rtype: list[list[int]]
"""result =
list()
if root ==
none
:return result
ifnot root.left and
not root.right and
sum== root.val:
[root.val]
)return result
left = self.pathsum(root.left,
sum- root.val)
for i in left:
i.insert(
0, root.val)
right = self.pathsum(root.right,
sum- root.val)
for i in right:
i.insert(
0, root.val)
return result
用這種方法會報錯int沒有insert,問了大佬後發現第乙個left之所以可以insert是因為是treenode型別的,後面是int數值型別的,不可能會有insert,所以不適合用這種解法
def
pathsum
(self,root,
sum)
: self.auxpathsum(root,
sum,
, res)
return res
defauxpathsum
(self,root,
sum,cur_list,cur_lists):if
notsum
:return
ifsum==0
andnot root.left and
not root.right:
[root.val]
)return
if root.left:
self.auxpathsum(root.left,
sum, cur_list +
[root.val]
, cur_lists)
if root.right:
self.auxpathsum(root.right,
sum,cur_list +
[root.val]
,cur_lists)
leetcode 113 路徑總和 II
題目描述 給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和sum 22,5 4 8 11 13 4 7 2 5 1返回 5,4,11,2 5,8,4,5 class solution void h...
leetcode113 路徑總和 II
參考自 這位博主!給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和sum 22,5 4 8 11 13 4 7 2 5 1返回 5,4,11,2 5,8,4,5 解題思路 主要思路就是深搜。但是要...
LeetCode113 路徑總和 II
給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和sum 22,5 48 11134 7251返回 5,4,11,2 5,8,4,5 和上一道 路徑總和i 差不多,記錄一下路徑,不要提前退出。記錄路...