Salve sto sviluppando un programma nel quale dovrei unire due liste in c: ho utilizzato l'algoritmo qui sotto ma non riesco a capire il motivo per il quale il programma, unisce solo parte delle due liste, potete spiegarmi cosa sbaglio?
codice:element head(list l){ return l->value; } //RITORNA L'INDIRIZZO SUCCESSIVO DEL PROSSIMO ELEMENTO list tail(list l){ return l->next; } list append(list l1,list l2){ list l3;//=emptyList(); l3=(list)malloc(sizeof(listNode)); if((tail(l1)!=NULL)){ l3->value=head(l1); l3->next=append(l1->next,l2); } else{ if((tail(l2)!=NULL)){ l3->value=head(l2); if((tail(l2->next)!=NULL)){ l3->next=append(l1,l2->next); } else{ l3->next=NULL; } } } return l3; }