目錄
一、題目內容
二、解題思路
三、**
給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。說明: 葉子節點是指沒有子節點的節點。
示例:前序遍歷,如果到達葉子結點且tmp的和為sum就加入到結果集中。給定如下二叉樹,以及目標和 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
def __repr__(self):
return str(self.val)
class solution:
def pathsum(self, root: treenode, sum_num: int) -> list:
if not root:
return
self.sum = sum_num
self.res =
def dfs(root, tmp):
if sum(tmp) == self.sum and root.left is none and root.right is none:
if root.left:
dfs(root.left, tmp + [root.left.val])
if root.right:
dfs(root.right, tmp + [root.right.val])
dfs(root, [root.val])
return self.res
if __name__ == '__main__':
a = treenode(5)
a.left = treenode(4)
a.right = treenode(8)
a.left.left = treenode(11)
a.right.left = treenode(13)
a.right.right = treenode(4)
a.left.left.left = treenode(7)
a.left.left.right = treenode(2)
a.right.right.left = treenode(5)
a.right.right.right = treenode(1)
sum_num = 22
s = solution()
ans = s.pathsum(a, sum_num)
print(ans)
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 差不多,記錄一下路徑,不要提前退出。記錄路...