leetcode 113 路徑總和 II

2021-10-08 07:41:38 字數 1847 閱讀 7759

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