Riscriverei il codice così:
codice:
void insertNext(link x,link head){ 
    link t=head;    //t prima puntava al contenuto di next (NULL)
    while (t->next!=NULL) { 
        t=t->next;
    }t->next=x;
}
Riscrivi anche print perché salti il primo nodo.

Modifica messaggio precedente:
non leggere da qui in poi, prima ho scritto baggianate
Esatto, lì devi usare un puntatore.
Prima di t=x i puntatori t ed head->next puntano a Null, poi solo t all'indirizzo giusto.
Per cambiare anche head->next devi fare in modo che t contenga l'indirizzo di next.

codice:
void insertNext(link x,link head){ 
    link *t=&head->next;    //t punta a next, prima puntava al contenuto di next (NULL)
    while (*t!=NULL) { 
        t=*t->next;
    }*t=x;
}