題目描述:
兩個連結清單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;
}