CF847A
题目上说要用双向链表,可以用手打链表的方法解决。
就是让这些链表头尾相接形成一个环,然后用数组模拟构造双向链表和将链表首尾相接的过程。
具体看代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
int l[105],r[105],n,Next;
signed main(){
ios::sync_with_stdio(false);
cin>>n;
for(int i = 1;i <= n;i++){
cin>>l[i]>>r[i];
}
for(int i = 1;i <= n;i++){
if(!l[i]){
r[Next] = i;
l[i] = Next;
Next = i;
while(r[Next]){
Next = r[Next];
}
}
}
for(int i = 1;i<=n;i++){
cout<<l[i]<<" "<<r[i]<<endl;
}
return 0;
}