题目
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e3 + 30;
int g[N][N], ans[N][N];
int d[N];
int f, u, v;
int cnt[N];
int x = 0;
void dfs(int k) {
for (int j = 1; j <= f; j++) {
if (g[k][j] == 1) {
g[k][j] = 0;
g[j][k] = 0;
dfs(j);
}
}
cnt[++x] = k;
}
int main() {
cin >> f;
for (int i = 1; i <= f; i++) {
cin >> u >> v;
g[u][v] = 1;
g[v][u] = 1;
d[u]++;
d[v]++;
}
int s = 1;
for (int i = 1; i <= f; i++) {
if (d[i] % 2 == 1) {
s = i;
break;
}
}
dfs(s);
for (int i = x; i >= 1; i--) {
if (cnt[i] != 0) {
cout << cnt[i] << "\n";
}
}
return 0;
}