#include <bits/stdc++.h>
using namespace std;
struct node
{
// int address;
int data;
int next;
} p[111111];
int main()
{
int s, n, a;
cin >> s >> n;
for (int i = 0; i < n; i++)
{
cin >> a;
cin >> p[a].data >> p[a].next;
}
int cnt = 0;
int res1[111111], res2[111111];
while(s != -1)
{
res1[cnt++] = s;
s = p[s].next;
}
int l = 0, r = cnt - 1;
int cnt2 = 0;
while (l <= r)
{
if (l == r)
{
res2[cnt2++] = res1[r--];
}
else
{
res2[cnt2++] = res1[r--];
res2[cnt2++] = res1[l++];
}
}
for (int i = 0; i < cnt - 1; i++)
{
printf("%05d %d %05d\n", res2[i], p[res2[i]].data, res2[i + 1]);
}
printf("%05d %d -1\n", res2[cnt - 1], p[res2[cnt - 1]].data);
}
L2-022 重排链表 (25 分)
最新推荐文章于 2023-04-22 11:02:27 发布