#include <iostream>
#include<cstdio>
#include <algorithm>
using namespace std;
int main() {
int first,n,k,temp;
scanf("%d%d%d",&first,&n,&k);
int data[100010], next[100010], list[100010];
for (int i = 0; i < n; i++) {
scanf("%d",&temp);
scanf("%d%d",&data[temp],&next[temp]);
}
int sum = 0;//统计有用节点
while (first != -1) {
list[sum++] = first;
first = next[first];
}
for (int i = 0; i < (sum - sum % k); i += k)
reverse(list+ i, list+ i + k); /*****
for (int i = 0; i < sum - 1; i++)
printf("%05d %d %05d\n", list[i], data[list[i]], list[i + 1]);
printf("%05d %d -1", list[sum - 1], data[list[sum - 1]]);
return 0;
}
B1025/A1074 反转链表
最新推荐文章于 2023-10-04 17:26:34 发布