Perché in fase di inserimento dei valori non metti l'ultimo elemento della lista a NULL.
Dovrebbe essere sufficente inserire come ultma istruzione del for()
p->next = NULL