Non ho capito un'istruzione ricorsiva :


import java.util.*;

public class InvertiLista {



public static LinkedList<Integer> invertiLista(ListIterator<Integer> li) {


if(!li.hasNext()) return new LinkedList<Integer>();


Integer i = li.next();


LinkedList<Integer> cat = invertiLista(li);


cat.add(i);


return cat;

}


}

l'istruzione che dicevo è LinkedList<Integer> cat = invertiLista(li); non ho capito come funziona la ricorsione in questo caso e di conseguenza l'assegnazione cat.add(i), qualcuno saprebbe spiegarmelo?? grazie in anticipo per le risposte.