113. 路徑總和 ii
給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。
說明: 葉子節點是指沒有子節點的節點。
示例:給定如下二叉樹,以及目標和 sum = 22,
5
/ \4 8
/ / \
11 13 4
/ \ / \
7 2 5 1
返回:
[[5,4,11,2],
[5,8,4,5]
]相當於dfs,每次計算到葉子節點。
# 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]]:
out =
target =
0def
helper
(root,target,res):if
not root:
return
#每次進入加入當前值到列表和總和中
target += root.val
# print(res, target)
ifsum
== target and
not root.left and
not root.right:
#如果為葉子節點,且總和等於sum輸出:]
)return
if root.left:
#如果左邊不為空
helper(root.left, target, res)
res.pop(
)if root.right:
#如果右邊不為空
helper(root.right, target, res)
res.pop(
) helper(root,0,
)return out
大佬的寫法:
class
solution
:def
pathsum
(self, root: treenode,
sum:
int)
-> list[list[
int]]:
res, path =
,[]def
recur
(root, tar):if
not root:
return
tar -= root.val
if tar ==
0and
not root.left and
not root.right:
list
(path)
) recur(root.left, tar)
recur(root.right, tar)
path.pop(
) recur(root,
sum)
return res
34-er-cha-shu-zhong-he-wei-mou-yi-zh-
5/
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 差不多,記錄一下路徑,不要提前退出。記錄路...