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;
}