虽然但是,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;
}