#include<bits/stdc++.h>
using namespace std;
const int mxn=1e5+10;
const int INF=0x3f3f3f3f;
struct node{
int next,data;
}l[mxn];
int main()
{
int fi,n;
cin>>fi>>n;
for(int x,y,z,i=1;i<=n;i++)
{
cin>>x>>y>>z;
l[x].next=z;
l[x].data=y;
}
vector<int> v;//利用容器存下链表
while(l[fi].next!=-1)//顺序存下节点
{
v.push_back(fi);
fi=l[fi].next;
}
v.push_back(fi);
int a=0,f=1,b=v.size()-1; //可能存在多余节点,应根据容器大小来进行赋值等
for(int i=1;i<=v.size()-1;i++)
{
if(f==1)
{
printf("%05d %d %05d\n",v[b],l[v[b]].data,v[a]);
b--;f=-f;
}
else
{
printf("%05d %d %05d\n",v[a],l[v[a]].data,v[b]);
a++;f=-f;
}
}
printf("%05d %d -1\n",v[b],l[v[b]].data);
return 0;
}
天梯赛 L2-022 重排链表
最新推荐文章于 2024-03-19 20:22:18 发布