#include <stdio.h>


int main()
{

struct lista
{
int dato;
struct lista *succ;
}; /* struttura elementi della lista */

typedef struct lista lista;
int x; /* uso "x" per assegnare il primo elemento della lista, in seguito dichiarerò "y" che userò per gli elementi successivi.*/

lista *nuovo;

printf("inserire valori: ");
scanf("%d",&x);

if(x!=-1){
nuovo=(lista*)malloc(sizeof(lista)); /* alloco memoria x il primo elemento */
x=nuovo->dato; /* Inserisco il primo elemento della lista */
int y;
scanf("%d",&y);
y=nuovo->succ;

while (y!=-1){ /* finchè non viene inserito il valore -1 continuo a assegnare nuovi elementi alla lista */

nuovo=(lista*)malloc(sizeof(lista));
y=y->succ;
scanf("%d",&y);
}

y->succ=NULL; /* quando inserisco il valore -1, la lista è finita. */
}

else nuovo->=NULL; /* se x è uguale a -1 la lista deve essere vuota */

free(nuovo); /* libero la memoria allocata */

return 0;
}