class Solution {
public static ArrayList<ArrayList<Integer>> Paths(Node root) {
// code here
ArrayList<ArrayList<Integer>> result = new ArrayList<>();
pathToLeaf(root,result,new ArrayList<>());
return result;
}
private static void pathToLeaf(Node node, List<ArrayList<Integer>> result, ArrayList<Integer> sub){
if(node == null){
return;
}
sub.add(node.data);
if(node.left==null && node.right == null){
result.add(new ArrayList<>(sub));
}
pathToLeaf(node.left,result,sub);
pathToLeaf(node.right,result,sub);
sub.remove(sub.size()-1);
}
}