leetcode 113 路徑總和 II

2021-10-09 19:26:49 字數 1713 閱讀 7832

目錄

一、題目內容

二、解題思路

三、**

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

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

示例:

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

5

/ \4   8

/   / \

11  13  4

/  \    / \

7    2  5   1

返回:

[

[5,4,11,2],

[5,8,4,5]

]

前序遍歷,如果到達葉子結點且tmp的和為sum就加入到結果集中。

# 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 差不多,記錄一下路徑,不要提前退出。記錄路...