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:
def pathSum(self, root, sum):
"""
:type root: TreeNode
:type sum: int
:rtype: List[List[int]]
"""
result = list()
if root == None:
return result
if not root.left and not root.right and sum == root.val:
result.append([root.val])
return result
left = self.pathSum(root.left, sum - root.val)
for i in left:
i.insert(0, root.val)
result.append(i)
right = self.pathSum(root.right, sum - root.val)
for i in right:
i.insert(0, root.val)
result.append(i)
return result
用這種方法會報錯int沒有insert,問了大佬後發現第一個left之所以可以insert是因為是treenode型別的,後面是int數值型別的,不可能會有insert,所以不適合用這種解法
def pathSum(self,root,sum):
self.auxPathSum(root, sum, [], res)
return res
def auxPathSum(self,root,sum,cur_list,cur_lists):
if not sum:
return
if sum == 0 and not root.left and not root.right:
cur_lists.append(cur_list + [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)
相關文章
- 113. 路徑總和 II mark
- LeetCode - 113 - 路徑總和 IILeetCode
- LeetCode-113-路徑總和 IILeetCode
- Day18 | 513. 找樹左下角的值 | 112.路徑總和、113.路徑總和ii
- LeetCode - 112 - 路徑總和LeetCode
- Leetcode——112. 路徑總和LeetCode
- Leetcode——437. 路徑總和 IIILeetCode
- 每日一道演算法題--leetcode 113--路徑總和II--python演算法LeetCodePython
- 程式碼隨想錄演算法訓練營第十八天| 513. 找樹左下角的值 112. 路徑總和 113. 路徑總和 II演算法
- LeetCode每日一題: 路徑總和(No.112)LeetCode每日一題
- leetcode:組合總和II(回溯java)LeetCodeJava
- LeetCode40.組合總和IILeetCode
- LeetCode-040-組合總和 IILeetCode
- LeetCode-063-不同路徑IILeetCode
- 【LeetCode擊敗99%+】二叉樹路徑總和LeetCode二叉樹
- [Leetcode]931.下降路徑最小和LeetCode
- 437. 路徑總和 III
- 每日一道演算法題--leetcode 112--路徑總和--python演算法LeetCodePython
- 寫不出來的深度優先搜尋----leetcode113 路徑總和LeetCode
- 二叉樹路徑總和二叉樹
- LeetCode 39. 組合總和 40.組合總和II 131.分割回文串LeetCode
- [Leetcode]120.三角形路徑最小和LeetCode
- LeetCode-064-最小路徑和LeetCode
- 路徑中./和../和/
- Linux檔案的路徑定位-相對路徑和絕對路徑Linux
- leetcode-90. Subsets IILeetCode
- Leetcode 40 Combination Sum IILeetCode
- Leetcode 213 House Robber IILeetCode
- LeetCode 1103[分糖果II]LeetCode
- nodejs路徑處理方法和絕對路徑NodeJS
- 【LeetCode】1496. 判斷路徑是否相交(Java)LeetCodeJava
- 絕對路徑和相對路徑的區別,
- 05_Linux相對路徑和絕對路徑Linux
- LeetCode 64號問題 最小路徑和LeetCode
- [LeetCode] 210. Course Schedule IILeetCode
- [LeetCode] 305. Number of Islands IILeetCode
- [LeetCode] 212. Word Search IILeetCode
- [Leetcode]253. Meeting Rooms IILeetCodeOOM