è la prima volta che uso il puntatore this..
ESERCIZIO: Scrivere una funzione che legga una sequenza di numeri
interi, li inserisca in una lista concatenata, elimini i
doppioni dalla sequenza, e stampi la sequenza risultante

non capisco l'errore nella funzione eliminaDoppi:

codice:
typedef struct nodo *lista;
typedef struct nodo{
        int val;
        lista next;
        }nodo;

void eliminaDoppi(lista L)
{
     lista this = L, prec, temp;
     while (this)
     {
      prec = this;
      while (prec->next)
            {
            temp = prec->next;  
            if (temp->val == this->val)
                     {
                     prec->next = temp->next;
                     free(temp);
                     }
            else prec = prec->next;
            }
       this = this->next;
      }
}