Ho giusto qualche altra cosa da chiederti (ti ringrazio per la spiegazione):

codice:
nodo currNode = l;
1)Non dovrebbe essere?

codice:
nodo* currNode = l;
E' un errore di battitura o sbaglio io?

2)AddNode è una funzione di inserimento di un nuovo valore?
E la utilizzo per inserire nella nuova lista chiamata "unionList", uno per volta gli elementi puntati da "currNOde" giusto?

Poi si fa lo stesso con gli elementi dell'altra lista (quella di sinistra ipotizzo), dato che è stata chiamata left.

E alla fine si restituisce l'unione.

Se corretto basta un si , altrimenti ho capito male il codice.

4)E quindi è vero che: per l'elemento a destra (il mio l2) si può accedere tramite la lettera "l", per l'elemeto a sinistra c'è bisogno di specificare anche il nome, cioè "left.l" (il mio l1)?
O comunque una cosa del genere, o ho capito male?