虽然但是,C语言用链表可能麻烦了点,但就纯粹解这道题好像不是必须用链表的吧。
#include <stdio.h>
#include <stdlib.h>
int main(){
int num=0;
while(scanf("%d",&num)!=EOF){
int *a;
a=(int*)malloc(sizeof(int)*num);
scanf("%d",&a[0]);
for(int i=1;i<num;i++){
int temp,value;
scanf("%d%d",&value,&temp);
for(int j=0;j<i;j++){
if(temp==a[j]){
for(int k=i; k>j+1;k--)
a[k]=a[k-1];
a[j+1]=value;
}
}
}
int delete;
scanf("%d",&delete);
for(int i=0;i<num;i++){
if(a[i]!=delete)
printf("%d ",a[i]);
}
printf("\n");
free(a);
}
return 0;
}