/*
4 5
1 2
1 3
2 4
1 4
3 4
*/
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#include <map>
#include <set>
#include <vector>
#include <ctime>
#include <iomanip>
using namespace std;
const int N = 1e5 + 10;
vector <int> g[N];
bool use[N];
int y, ans = 0x3f3f3f3f, x;
int find1;
void dfs(int x1, int step)
{
use[x1] = true;
cout << x1 << " ";
if(x1 == y)
{
ans = min(ans, step);
return;
}
for(int i = 0; i < g[x1].size(); i++)
{
if(use[g[x1][i]] == false)
{
step++;
dfs(g[x1][i], step;
}
}
}
int main()
{
int n;
cin >> n >> x >> y;
for(int i = 1; i <= n - 1; i++)
{
int u, v;
cin >> u >> v;
g[v].push_back(u);
g[u].push_back(v);
}
dfs(x, 0);
cout << ans;
// for(int i = 1; i <= n; i++)
// {
// cout << i << " : ";
// for(int j = 0; j < g[i].size(); j++)
// {
// cout << g[i][j] << " ";
// }
// cout << endl;
// }
return 0;
}
6 1 2
3 1
2 5
1 2
4 1
2 6
以上代码能输出最短的步数,怎么输出路径