将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的存储空间,表中不允许有重复的数据。 请根据上面的描述,将程序补充完整。 void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc) {//将两个递螬的有序链表La和Lb合并为一个递增的有序链表LC pa=La->next; //pa是链表La的工作指针,初始化为首元结点 pb=Lb->next; //pb是链表Lb的工作指针,初始化为首元结点 while (pa&&pb) { if (pa->data<pb->data)
时间: 2024-03-06 09:49:52 浏览: 127
//将pa所指结点插入到LC链表尾部,pa指针后移
Lc->next = pa;
Lc = pa;
pa = pa->next;
} else if (pa->data > pb->data) {
//将pb所指结点插入到LC链表尾部,pb指针后移
Lc->next = pb;
Lc = pb;
pb = pb->next;
} else {
//pa->data == pb->data,将pb所指结点插入到LC链表尾部,pa和pb指针都后移
Lc->next = pb;
Lc = pb;
pb = pb->next;
pa = pa->next;
}
}
//将未处理完的链表接到LC链表尾部
Lc->next = pa ? pa : pb;
}
```
阅读全文