我正在创建一个函数,该函数以非递归方式将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
为什么会这样?