codice:
if(current != NULL){
current->next = current->next->next;
kill(current->next);
}
return current;
}
In questa c'è un problema, current->next potrebbe essere NULL e quindi non ha senzo current->next->next;
codice:
LIST togli_pari(LIST L)
{
LIST pnode;
if (L == NULL)
return L;
else
{
pnode = L->next;
L->next = togli_pari(pnode->next);
return L;
}
}
lo stesso vale anke qui... pnode potrebbe essere NULL e quindi non ha senza pnode->next
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;
}