题目描述
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。
说明: 叶子节点是指没有子节点的节点。
思路
代码
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]]:
res = []
if not root:
return []
def backtrack(root,sum,tmp):
if not root:
return
if not root.left and not root.right and sum - root.val == 0:
tmp += [root.val]
res.append(tmp)
return
backtrack(root.left,sum-root.val,tmp+[root.val])
backtrack(root.right,sum-root.val,tmp+[root.val])
backtrack(root,sum,[])
return res