给定一个常数 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