Volevo sapere la vostra opinione a riguardo di un programma che riceva in ingresso una lista e deallochi quei nodi che non soddisfano un determinato criterio.
Mettiamo che la lista abbia un campo che contenga numeri interi e si voglia deallocare i nodi che contengano numeri negativi
codice:
lista sfrondalista (lista L) {
lista temp;
if ( L!=NULL) /*finchè non arrivo in fondo*/
{
if (L->dato<0) /*se è un numero negativo*/
{
temp=L; /*metto in temp il nodo da cancellare*/
L=L->next; /*modifico L*/
free(temp); /*cancello*/
}
return sfrondalista(L) /*faccio l'invocazione ricorsiva*/
}
returnL /* alla fine riottengo L*/
}
che ne dite? potrebbe funzionare? grazie per i vostri suggerimenti