direi che non c'è nulla da aggiungere, semmai devi togliere la parte che ho messo nel ciclo while, quella di richiesta del valore.
Il mio ciclo while era in risposta alla tua domanda "come fare per gestire un numero di inserimenti non noti a priori da concludersi alla digitazione dello zero"...codice:struct nodo *creaelemento(int val) { struct nodo *temp; temp=(struct nodo*)malloc(sizeof(struct nodo)); if(temp) { temp->data=val; temp->next=NULL; } else printf("Impossibile allocare"); return (temp); }