题目:原题链接(中等)
标签:树、二叉树、深度优先搜索
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | O ( N ) O(N) O(N) | O ( H ) O(H) O(H) | 48ms (89.19%) |
Ans 2 (Python) | |||
Ans 3 (Python) |
解法一:
class Solution:
def __init__(self):
self.lst = []
self.val = 0
self.ans = []
def pathSum(self, root: TreeNode, sum: int) -> List[List[int]]:
def dfs(node):
if node:
self.val += node.val
self.lst.append(node.val)
if node.left or node.right:
if node.left:
dfs(node.left)
if node.right:
dfs(node.right)
else:
if self.val == sum:
self.ans.append(self.lst.copy())
self.val -= node.val
self.lst.pop()
dfs(root)
return self.ans