合并两个链表
已知两个单链表a和b, 其中的元素都是非递减排列的,实现算法将a和b合并成一个有序递减的单链表c(值相同的元素只保留一个), 并要求利用原单链表的节点空间。
分析:利用头插法建立单链表,时先插入的元素值小的节点在单链表末尾,后插入的元素值大的节点在单链表开头。
#include <iostream>
using namespace std;
typedef struct node
{
int data;
node* next;
} listNode, *linkList;
void mergeList(linkList, linkList, linkList*);
int main()
{
linkList a{
nullptr}, b{
nullptr}, c{
nullptr};
for (listNode* p{
new listNode}, *q; ; p = p->next) {
q = new listNode;
q->next = nullptr;
cin >> q->data;
p->next = q;
if (!a) {
a = p;