package leetcode;
import java.util.ArrayList;
import java.util.List;
public class offer_34 {
public List<List<Integer>> pathSum(TreeNode root, int target) {
List<List<Integer>> list=new ArrayList<List<Integer>>();
backtarck(root, target, new ArrayList<Integer>(), list);
return list;
}
public void backtarck(TreeNode root,int target,ArrayList<Integer> li,List<List<Integer>> list) {
if(root==null) {return;}
li.add(root.val);
if(target-root.val==0&&root.left==null&&root.right==null) {
list.add(new ArrayList<Integer>(li));
}
else{
backtarck(root.left, target-root.val, li, list);
backtarck(root.right, target-root.val, li, list);
}
li.remove(li.size()-1);
}
}