题目:已知两个链表 A 和 B 分别表示两个集合,其元素递增排列。编一函数,求 A 与 B 的交集,并存放于 A 链表中。
LinkList Union(LinkList la,LinkList lb){
LinkList pa=la->next,pb=lb->next;
pc—la; // 结果表中当前合并结点的前驱的指针
while(pa && pb)
if (pa->data = pb->data) { //如果相等就取交集并入结果表中
pc->next=pa;
pc=pa;
pa=pa->next;
u=pb;
pb=pb->next;
free(u);
}else
if (pa->data < pb->data){ //如果小于,就删掉
u=pa;
pa-pa->next;
free(u);
}else { //如果大于,就删掉小的
u=pb;
pb-pb->next;
free(u);
}
while(pa){
u-pa;
pa=pa->next;
free (u);
}
while(pb){
u=pb;
pb=pb->next;
free(u);
}
pc->next=NULL; // 置链表尾标记
free(lb);
}