Hello!
Wouldn’t this solution be a bit simpler than the reference solution?
static List<LinkedList<Integer>> gen(int k, int n){
List<LinkedList<Integer>> result = new ArrayList<>();
gen(result, new LinkedList<>(), k,n);
return result;
}
static void gen(List<LinkedList<Integer>> result, LinkedList<Integer> tail, int k, int max){
if (k == 0){
result.add(new LinkedList<>(tail));
return;
}
if (k > max){
return;
}
gen(result, tail, k, max-1);
tail.addFirst(max);
gen(result, tail, k-1, max-1);
tail.removeFirst();
}