题目:
分析:
这道题和路径总和|并没有什么太大的区别,依然可以用回溯法进行计算,并且不用考虑剪枝
代码:
class Solution {
List<List<Integer>> res=new ArrayList<>();
public List<List<Integer>> pathSum(TreeNode root, int sum) {
if(root==null) return res;
help(root,sum,0,new ArrayList<Integer>());
return res;
}
public void help(TreeNode root, int sum,int now,List<Integer> list) {
now+=root.val;
list.add(root.val);
if(now==sum && root.left==null &&root.right==null){
res.add(new ArrayList(list));
return;
}
if(root.left!=null){
help(root.left,sum,now,list);
list.remove(list.size()-1);
}
if(root.right!=null){
help(root.right,sum,now,list);
list.remove(list.size()-1);
}
}
}
结果: