
(1)创建递增排列的单链表A、B;
(2)输出单链表A、B;
(3)实现A、B链表的并集C并输出。
供参考:
void MergeList(LNode*& La, LNode*& Lb, LNode*& Lc)
{ //升序链表La和Lb并集得升序链表LC,最终 La Lc 都指向得到并集链表。
LNode* pa, * pb, * pc, * pt;
pa = La->next;
pb = Lb->next;
La->next = NULL;
Lc = pc = La;
while (pa && pb)
{
if (pa->data < pb->data)
{
pc->next = pa;
pc = pa;
pa = pa->next;
}
else if (pa->data > pb->data) {
pc->next = pb;
pc = pb;
pb = pb->next;
}
else {
pc->next = pa;
pc = pa;
pa = pa->next;
pt = pb;
pb = pb->next;
free(pt);
}
}
pc->next = pa ? pa : pb;
free(Lb);
Lb = NULL;
}