2468: 反转链表

内存限制:128 MB 时间限制:2 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:4 通过:3

题目描述

给定一个常数 K 和一个单链表 L,请你在单链表上每 K 个元素做一次反转,并输出反转完成后的链表。

如果链表最后一部分不足 K 个元素,则最后一部分不翻转。

例如,假设 L 为 1→2→3→4→5→61→2→3→4→5→6,如果 K=3,则你应该输出 3→2→1→6→5→43→2→1→6→5→4;如果 K=4,则你应该输出 4→3→2→1→5→64→3→2→1→5→6

补充

本题中可能包含不在链表中的节点,这些节点无需考虑。

输入格式

第一行包含头节点地址,总节点数量 N 以及常数 K。

节点地址用一个 5 位非负整数表示(可能有前导 0),NULL 用 −1 表示。

接下来 N 行,每行描述一个节点的信息,格式如下:

Address Data Next

其中 Address 是节点地址,Data 是一个整数,Next 是下一个节点的地址。

输出格式

将重新排好序的链表,从头节点点开始,依次输出每个节点的信息,格式与输入相同。

数据范围

1≤N≤105,
1≤K≤N

输入样例:

00100 6 4
00000 4 99999
00100 1 12309
68237 6 -1
33218 3 00000
99999 5 68237
12309 2 33218

输出样例:

00000 4 33218
33218 3 12309
12309 2 00100
00100 1 99999
99999 5 68237
68237 6 -1

输入样例 复制

00100 6 4
00000 4 99999
00100 1 12309
68237 6 -1
33218 3 00000
99999 5 68237
12309 2 33218

输出样例 复制

00000 4 33218
33218 3 12309
12309 2 00100
00100 1 99999
99999 5 68237
68237 6 -1

分类标签