import java.util.ArrayList; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
} */ public class Solution { ArrayList<ArrayList> list = new ArrayList<>(); public ArrayList<ArrayList> FindPath(TreeNode root,int expectNumber) { if(root == null) return list; dfs(root,expectNumber,0,new ArrayList());
return this.list;
}
public void dfs(TreeNode root,int expectNumber,int num,ArrayList<Integer> tlist) {
if(root.left==null && root.right==null) {
if(num + root.val == expectNumber) {
ArrayList<Integer> tlist1 = new ArrayList<>();
for(int i = 0;i < tlist.size();i++) {
tlist1.add(tlist.get(i));
}
tlist1.add(root.val);
this.list.add(tlist1);
}
}
ArrayList<Integer> tlist1 = new ArrayList<>();
for(int i = 0;i < tlist.size();i++) {
tlist1.add(tlist.get(i));
}
tlist1.add(root.val);
num = num + root.val;
if(root.left != null) {
dfs(root.left,expectNumber,num,tlist1);
}
if(root.right != null) {
dfs(root.right,expectNumber,num,tlist1);
}
}
}
class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}