题目描述:
两个链表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;
}