下面三道关于合并的题用到主要的思路是——设置3个指针pa、pb和pc,其中pa和pb分别指向当前带比较插入的节点,而pc指向LC当前最近插入的一个节点,然后顺序可以通过前插后插来控制,重复元素的去留可以通过多一次判断解决。
习题1 将两个非递减有序链表合并为一个非递减的有序链表,要求结果链表仍使用原来两个链表的存储空间。
void MergeSqList(LinkList LA, LinkList LB, LinkList &LC)
{
LNode *pa = LA->next;
LNode *pb = LB->next;
LC = LA;
LNode *pc = LC;
while( pa&&pb ) // 依次找出A、B中的元素进行配对比较
{
if(pa->data <= pb->data)
{
pc->next = pa;
pc = pa;
pa =</