算法思想:
①导入两个链表,比较A、B的值,若B中没有则删除A的值;
②若B中有,头插到A,实现逆置。
//算法思想:
//①导入两个链表,比较A、B的值,若B中没有则删除A的值;
//②若B中有,头插到A,实现逆置。
//
//
typedef struct LNode{
int data;
struct LNode *next;
}LNode, *LinkList;
void Common(LInkList A,LinkLIst B){
LinkList p=A->next,q=B->next,s=NULL; //定位到A、B表首元素,s为辅助指针
A->next=NULL; //初始化A表,与元素断开
while(p&&q) { //p q都不空则
if(p->data < q->data){ //A中元素小于B,因为是递增的,例如 A123 B234,故肯定不是交集,删掉
s=p->next; //s先帮p把下一个元素定位好
free(p);
p=s; //s把定位还给p,即下一个元素