Ma come sono scritti i while

while(l1!=NULL) l1=l1->next; {


while (l2!=NULL) l2=l2->next; {


???

E soprattutto, devi porre attenzione al fatto che la ricerca nel secondo ciclo deve ricominciare sempre dal primo elemento ...