ciao a tutti sono nuovo del forum ho un problema con le liste
dunque mi occorre un metodo ricorsivo che mi modifichi la lista invertendola "sul posto"
vi posto le classi nodo e lista ed un metodo ricorsivo che mi stampa la lista (assunta ordinata) senza ripetizioni
ho usato due metodi uno nella classe nodo che mi escludeva i nodi ripetuti
e un metodo nella classe lista per modificarla, mi occorrerebbe fare qualcosa del genere anche per invertirla ma non ci riesco proprio

n.b. mi è stato chiesto il non utilizzo di iteratori, solo metodi ricorsivi
vi ringrazio tutti in anticipo

ecco le classi di cui dispongo
questa è la classe nodo:

codice:
//modifica la lista senza ripetizioni (assumendo lista ordinata)

public class Nodo{
   Object elemento;
   Nodo next;
   public Nodo(Object elemento,Nodo next) {
      this.elemento=elemento;
      this.next=next;
   }
   public Nodo (Object elemento) {
      this.elemento=elemento;
      this.next=null;
   }
   public Nodo copia(){
       Nodo nuovo = new Nodo(elemento,next);
       if (next==null) return nuovo;
       else if ( !(this.elemento).equals(this.next.elemento) ){
           nuovo.next=next.copia();
           return nuovo;
       }
       else return next.copia();
   }
}
questa è la classe lista:
codice:
//modifica la lista senza ripetizioni (assumendo lista ordinata)

public class Lista{
   private Nodo header;
   private int size;  
   public Lista(){
        size=0;
   }
    public void modificaLista(){
       if(size!=0) header=header.copia();
       else header=null;
   }
}