求两个链表的交集集合
题目:已知递增有序的两个单链表A和B各存储了一个集合。设计算法实现求两个集合的交集运算C=A∩B。
typedef int DataType;
typedef struct Node
{
DataType data;
struct Node *next;
} LinkList;
LinkList *union(LinkList *A,LinkList *B)
{
LinkList *C,*p,*q,*s,*r;
p=A->next;
q=B->next;
C=A;
r=C;
while(p&&q)
{
if(p->data=q->data)
{
r->next=p;
r=p;
p=p->next;
q=q->next;
}
else if (p->data<q->data)
{
p=p->next;
}
else q=q->next;
}
r->next =NULL;
free(B);
return C;
}
如有错误,还请指正。
页:
[1]