Basati su questo : (Fatto da me)

codice:
#include <stdio.h>
#include <stdlib.h> 

typedef struct Structure {
     int Data;
     struct Structure *Next;
 }Element;

Element *AddElements ();

Element *ViewElements (Element *List);

int main ()
{
     Element *List;
     AddElements ();
     system ("CLS");
     ViewElements (List);
     system ("PAUSE");
     return 0;
}

Element *AddElements ()
{
     Element *List = NULL;
     Element *Pointer;
     int Elements;
     int i;
     printf ("Elementi della lista : ");
     scanf ("%i", & Elements);
     if (Elements == 0)
     {
         List = NULL;
     }else{
         List = (Element *)malloc(sizeof(Element));
         printf ("Inserisci il 1 elemento : ");
         scanf ("%i", & List -> Data);
         Pointer = List;
         for (i = 0 ; i < Elements - 1 ; i++)
         {
             Pointer -> Next = (Element *)malloc(sizeof(Element));
             Pointer = Pointer -> Next;
             printf ("Inserisci il %i elemento : ", i + 2);
             scanf ("%i", & Pointer -> Data);
         }
         Pointer -> Next = NULL;
     }
     return List;
}

Element *ViewElements (Element *List)
{
     printf ("Lista :\n\n");
     while (List != NULL)
     {
         printf ("%i -----> ", List -> Data);
     }
     printf ("NULL\n\n");
 }
Come faccio a svuotare questa benedetta lista ?