题目描述:
A,B是两个带头结点的单链表,其中元素递增有序。设计一个算法从A和B中公共元素产生单链表C,要求不破坏A,B的结点。
算法思想:
核心代码:
LNode* Public_Element(LNode* &La,LNode* &Lb)
{
LNode *pa,*pb;
pa=La->next;
pb=Lb->next;
LNode *Lc=(LNode*)malloc(sizeof(LNode));
Lc->next=NULL;
LNode *rc=Lc;
while(pa&&pb)
{
if(pa->data<pb->data)
{
pa=pa->next;
}
else if(pa->data>pb->data)
{
pb=pb->next;
}
else
{
LNode* q;
q=(LNode*)malloc(sizeof(LNode));
q->data=pa->data;
rc->next=q;
rc=rc->next;
pa=pa->next;
pb=pb->next;//忘记移动了
}
}
rc->next=NULL;//忘记置空
return Lc;
}