天天看點

王道課後習題2.3.15:求連結清單A和B的交集

題目描述:

兩個連結清單A和B,其元素遞增排列,求A和B的交集并存放在A中。

算法思想:

核心代碼:

LNode* Public_Element(LNode* &La,LNode* &Lb)
{
    LNode *pa,*pb;
    pa=La->next;
    pb=Lb->next;

    La->next=NULL;

    LNode *ra=La;

    while(pa&&pb)
    {
        if(pa->data<pb->data)
        {
            LNode* temp=pa;
            pa=pa->next;
            free(temp);//原本又寫成free(pa),free錯了。
        }
        else if(pa->data>pb->data)
        {
            LNode* temp=pb;
            pb=pb->next;
            free(temp);
        }
        else
        {

            ra->next=pa;
            ra=ra->next;

            LNode* temp1=pa;
            pa=pa->next;
            free(temp1);
            LNode* temp2=pb;
            pb=pb->next;//忘記移動了
            free(temp2);

        }
    }
    while(pa)
    {
        LNode* temp=pa;
        pa=pa->next;
        free(temp);
    }
    while(pb)
    {
        LNode* temp=pb;
        pb=pb->next;
        free(temp);
    }
    ra->next=NULL;//忘記置空
    return La;

}
           

繼續閱讀