有两个链表a和b,设结点中包含学号、姓名。从a链表中删去与b链表中有相同学号的那些结点。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Node {
long num;
char name[20];
struct Node* next;
} Node;
Node* creat() {
Node *head = NULL, *p1, *p2;
p1 = p2 = (Node*)malloc(sizeof(Node));
scanf("%ld %s", &p1->num, p1->name);
int n = 0;
while (p1->num != 0) {
n++;
if (n == 1) head = p1;
else p2->next = p1;
p2 = p1;
p1 = (Node*)malloc(sizeof(Node));
scanf("%ld %s", &p1->num, p1->name);
}
p2->next = NULL;
return head;
}
void print(Node* head) {
Node* p = head;
while (p != NULL) {
printf("Num: %ld, Name: %s\n", p->num, p->name);
p = p->next;
}
}
Node* removeCommon(Node