问题
分析
1.找到相同的,通过尾插法插入a链表中,两个表中,释放除了交集外的所有节点
LinkList search_same_create_a(LinkList &A,LinkList B)//因为要改变a、b的结构,所以引用
{
LNode *p=A->next,*q=B->next,*r;
LNode *r=A,*u;
while(p-next!=NULL&&q->next!=NULL){
if(p->data<q->data){
u=p;//让它代替p被释放,p如果被释放,就找不到p的后继指针的位置。相比上一题,多了个临时指针被释放的操作
p=p->data;
free(u);
}
else if(q->data<p->data){
u=q;
q=q->next;
free(u);
}
else{
r->next=p;//要用尾插法
r=p;
p=p->next;
u=p;
q=q->next;
free(u);
}
}
while(p!=NULL){
u=p;//若是两表长度不一样,一个释放完一个还没有,可以通过这个被释放
p=p->next;
free(u);
while(q!=NULL){
u=q;
q=q->next;
free(u);
}
}
r->next=NULL;//尾插法尾指针置空
free(B);//释放b表头结点
return A;
}