Io ho fatto questo

codice:
void cancInFondo(nodo **lista)
{
	nodo *temp = *lista;
	if(lista!=NULL)
	{
		if(*lista->next == NULL)
			*lista = NULL;
		else
		{
		   while(temp->next!=NULL && temp->next->next!=NULL)
			   temp = temp->next;
		   free(temp->next);
		   temp->next = NULL;
		}
	}
}
Ho trattato come caso base 1 elemento.