In questa c'è un problema, current->next potrebbe essere NULL e quindi non ha senzo current->next->next;codice:if(current != NULL){ current->next = current->next->next; kill(current->next); } return current; }
lo stesso vale anke qui... pnode potrebbe essere NULL e quindi non ha senza pnode->nextcodice:LIST togli_pari(LIST L) { LIST pnode; if (L == NULL) return L; else { pnode = L->next; L->next = togli_pari(pnode->next); return L; } }
e cmq in entrambi c'è molto garbage (memoria non liberata)...
codice:if(current != NULL){ if (current->next != NULL) { aux = current->next; current->next = current->next->next; free(aux); } kill(current->next); } return current; }codice:LIST togli_pari(LIST L) { LIST pnode; if (L != NULL) { pnode = L->next; if (pnode != NULL) L->next = togli_pari(pnode->next); else L->next = NULL; free(pnode); } return L; }

Rispondi quotando