#include #include #include using namespace std; const int MAXN = 1e5 + 123; vector g[MAXN]; vector current_path; vector diameter; void dfs(int v, int p = -1) { current_path.push_back(v); for (int u : g[v]) { if (u != p) { dfs(u, v); } } if (diameter.size() < current_path.size()) { diameter = current_path; } current_path.pop_back(); } int main() { int n; cin >> n; for (int i = 0; i < n - 1; i++) { int a, b; cin >> a >> b; g[a-1].push_back(b-1); g[b-1].push_back(a-1); } dfs(0); dfs(diameter.back()); for (int i : diameter) { cout << i << " "; } cout << endl; }