AcWing 1560. 反转链表
原题链接
中等
作者:
og_
,
2020-06-03 16:36:20
,
所有人可见
,
阅读 543
C++ 代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int head,ne[N],e[N],idx;
int num[N];
void init(int head_address){
head = head_address;
idx = 0;
}
int main(){
int a,n,k;
cin>>a>>n>>k;
init(a);
for(int i = 0;i<n;i++){
int aa;
cin>>aa;
cin>>e[aa]>>ne[aa];
}
int list[N],sum=0;
while(a!=-1){
list[sum++] = a;
a = ne[a];
}
for(int i = 0;i<sum;i++) num[i]=list[i];
for(int i = 0;i+k<=sum;i+=k){
reverse(num+i,num+i+k);
}
for(int i = 0;i<sum;i++){
if(i!=sum-1)printf("%05d %d %05d\n",num[i],e[num[i]],num[i+1]);
else printf("%05d %d -1",num[i],e[num[i]],num[i+1]);
}
return 0;
}