1. Code
class Solution:
def dfs(self, node, target, visited, ans):
if node == None:
return
visited.append(node.val)
if not node.left and not node.right:
total = sum(visited)
if total == target:
temp = visited[:]
ans.append(temp)
visited.pop()
return
if node.left:
self.dfs(node.left, target, visited, ans)
if node.right:
self.dfs(node.right, target, visited, ans)
visited.pop()
def pathSum(self, root: Optional[TreeNode], targetSum: int) -> List[List[int]]:
ans = []
self.dfs(root, targetSum, [], ans)
return ans
2. Result
Runtime : 28 ms(100.00%), Memory usage : 15.6 MB(56.45%)
(Runtime can be different by a system even if it is a same code.)