//头一次写,如果不好请见谅 #include<bits/stdc++.h> using namespace std; int f[10010];//使用数组,数组标号为该数的位置,数组存放的值为下一个数的位置 int main(){ int n,h,k;cin>>n>>h; int zui=h;//用于记录最后一个数是多少 int a,b; for(int i=0;i<n-1;i++){ scanf("%d%d",&a,&b);//每次读取两个数字 if(b==zui){ f[zui]=a;//如果b为最后一个数 zui=a;//更新zui }else { f[a]=f[b]; f[b]=a;//和链表插入一个原理 } } int wei=h;//用与记录位置,从头节点开始 cin>>k; if(h!=k)printf("%d ",h);//判断第一个是否需要删除 for(int i=0;i<n-1;i++){//插入了n-1个数字 if(f[wei]==k){wei=f[wei];}//如果遇到需要删除的值,只更新wei,但不输出 else printf("%d ",f[wei]),wei=f[wei]; } return 0; }