数据结构两个升序单链表求并集

img


用这段代码求升序单链表La和Lb的并集得到的升序单链表Lc中出现了重复的数字,怎么改啊

供参考:

void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc)
{                        //升序链表La和Lb并集得升序链表LC
       LNode *pa,*pb,*pc;
       pa=La->next;
       pb=Lb->next;
       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;
                pb = pb->next;
            }
       }
       pc->next = pa?pa:pb;
       free(Lb);
}