https://leetcode-cn.com/problems/path-sum-ii/
思路:回溯法。
class Solution:
def pathSum(self, root, sum):
"""
:type root: TreeNode
:type sum: int
:rtype: List[List[int]]
"""
self.res = []
path = []
self.backtrack(root, sum, path) #调用回溯
return self.res
def backtrack(self, root, sum, path):
if not root:
return
sum -= root.val
#经典回溯格式
path.append(root.val) #先尝试放root
#符合条件写入
if not root.left and not root.right and sum == 0:
self.res.append(list(path))
#回溯左右子树
self.backtrack(root.left, sum, path)
self.backtrack(root.right, sum, path)
path.pop() #弹出