Potresti servirti di una seconda lista ed inserire in modo ordinato i nuovi elementi.

Del tipo

public void ordina(Lista p){
Lista l=new Lista();
Iterator it=p.getIterator();
while(it.hasMore()){
l.insOrdinato(it.next());
}
}

dove insOrdinato è un metodo di lista che ti permette di ordinare una lista man mano che la inserisci.
Sennò puoi inserire gli oggetti presenti nella lista in un array e ordinarlo come ti pare , successivamente ricopiare l'array in una uova lista .