无递归合并功能

时间:2019-06-09 19:27:13

标签: c++ linked-list nodes

我正在创建一个函数,该函数以非递归方式将2个链接列表(假定列表已排序)合并到一个单独的已排序链接列表中。

我尝试查看是否所有字母实际上都在进入函数,而且它们确实是,我也知道,当两个列表都不等于null时,至少要选择正确的字母

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

输入的列表包含以下字母 清单1:hello list2:wordswithoutspace

这些字母没有排序,但是当前的问题是所有字母都没有显示。

预期输出:hellowwordswithoutspaces 实际输出:heo

为什么会这样?

0 个答案:

没有答案