nel codice ci sono un po' di errori.
- la classe ListElem deve avere un metodo setNext() che ti permette di aggiornare il valore del riferimento all'elemento successivo
- devi utilizzare un puntatore all'elemento precedente per evitare di perdere parti di lista durante la cancellazione
- la cancellazione dell'ultimo elemento non ha bisogno di essere gestita separamente
codice:
public void eliminaPari()
{
ListElem cursore = first;
ListElem prev = first;
while(cursore != null)
{
if(cursore.getDato() %2==0)
{
if (cursore == first)
{
first = first.getNext();
cursore = prev = first;
}
else
{
cursore = cursore.getNext();
prev.setNext(cursore);
}
}
else
{
prev = cursore;
cursore = cursore.getNext();
}
}
}