Ciao . . . Quello che dovresti fare è soltanto ottenere un puntatore al penultimo nodo cosí potrai sia deallocare l' ultimo nodo, sia aggiornare la lista (e va fatto in quest' ordine) . . .codice:void cancInFondo( nodo** lista ) { nodo* newLastNode, *currNode; if( *lista ) { currNode = *lista; if( currNode->next ) { while( currNode->next ) { newLastNode = currNode; currNode = currNode->next; } free(newLastNode->next); newLastNode->next = NULL; } else { free(*lista); *lista = NULL; } } }

Rispondi quotando