Clynamen non capisco bene perché fai ricorso a puntatore a puntatore nella tua soluzione nel senso link è già un node* quindi link* t è come dire node** t giusto? Io ho risolto così:
codice:
void insertNext(link x,link head){
   while (head->next!=NULL) {head=head->next;}
   head->next=x;
}
il problema è che non capisco perché in questo modo funzioni e come prima invece no possibile che il semplice assegnamento t=head->next; poi non faccia andare più le cose come dovrebbero?