Нет рекурсивной функции слияния - PullRequest
0 голосов
/ 09 июня 2019

Я создаю функцию, которая не рекурсивно объединяет 2 связанных списка (предположим, что списки отсортированы) в один отсортированный связанный список.

Я попытался выяснить, действительно ли все буквы входят в функцию и они есть, я также знаю, что по крайней мере, когда оба списка не равны нулю, он выбирает правильные буквы

    Node *newTop, *curr;
    if(top1->data < top2->data){
        newTop = createNode(top1->data);
        top1 = top1->next;
    }else{
        newTop = createNode(top2->data);
        top2 = top2->next;
    }
    curr = newTop;
    while(top1 != NULL && top2 != NULL){
        if(top1->data < top2->data){
            curr->next = createNode(top1->data);
            curr = curr->next;
            top1 = top1->next;
        }else{
            curr->next = createNode(top2->data);
            curr = curr->next;
            top2 = top2->next;
        }
    }
    if(top1 != NULL){
        while(top1 != NULL){
            curr->next = createNode(top1->data);
            curr = curr->next;
            top1 = top1->next;
        }
    }else{
        while(top2 != NULL){
            curr->next = createNode(top2->data);
            curr = curr->next;
            top2 = top2->next;
        }
    }
    return newTop;
}

Введенные списки содержат буквы для следующих list1: hello list2: wordswithoutspace

они не отсортированы, но текущая проблема заключается в том, что не отображаются все буквы.

ожидаемый результат: hellowwordswithoutspaces фактический объем производства: heo

Почему это происходит?

...