codice:
typedef struct nodo *lista; 
typedef struct nodo {
		int val;
		lista next;
}	nodo;

/* prototipi di funzioni */
lista concatList(lista L1, lista L2);

/* Function: concatList
 * Usage: L1 = concatList (L1, L2);
 * -----------------------------------------------
 * Concatena L1 e L2, creando un link fra l’ultimo nodo di L1 ed il primo di L2. 
 * ATTENZIONE: una delle liste, o entrambe, potrebbero essere vuote.
 * Restituisce il puntatore al nodo di testa della lista così ottenuta. 
 */
lista concatList (lista L1, lista L2)
{
 
nodo *corrente;
nodo *precedente;

if(L1==NULL) return L2;
if(L2==NULL) return L1;

corrente = L1; 
while(corrente!=NULL){
precedente = corrente;
corrente=corrente->next;
}

corrente=L2;

return L1;
}
lo svolgimento è in grassetto
è giusto?