题目:
代码:
#include<bits/stdc++.h>
using namespace std;
int pre[100005],l=0,c[100005];
vector<int> edge[100005];
void dfs(int x){
for(auto y:edge[x]){
if(y!=pre[x]){
pre[y]=x;
dfs(y);
}
}
}
int main(){
int n;
scanf("%d",&n);
for(int i=1;i<n;i++){
int x,y;
scanf("%d%d",&x,&y);
edge[x].push_back(y);
edge[y].push_back(x);
}
int s,e;
scanf("%d%d",&s,&e);
pre[s]=-1;
dfs(s);
for(int i=e;i!=s;i=pre[i]){
c[++l]=i;
}
c[++l]=s;
for(int i=l;i>=1;i--){
printf("%d ",c[i]);
}
}