首页 > 试题广场 >

Reversing Linked List (25)

[编程题]Reversing Linked List (25)
  • 热度指数:2849 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For
example, given L being 1→2→3→4→5→6, if K = 3, then you must output 3→2→1→6→5→4; if K = 4, you must output
4→3→2→1→5→6.

输入描述:
Each input file contains one test case. For each case, the first line contains the address of the first node, a positive N 
(<= 105) which is the total number of nodes, and a positive K (<=N) which is the length of the sublist to be reversed.
The address of a node is a 5-digit nonnegative integer, and NULL is represented by -1.

Then N lines follow, each describes a node in the format:

Address Data Next

where Address is the position of the node, Data is an integer, and Next is the position of the next node.


输出描述:
For each case, output the resulting ordered linked list. Each node occupies a line, and is printed in the same format as in the input.
示例1

输入

00100 6 4<br/>00000 4 99999<br/>00100 1 12309<br/>68237 6 -1<br/>33218 3 00000<br/>99999 5 68237<br/>12309 2 33218

输出

00000 4 33218<br/>33218 3 12309<br/>12309 2 00100<br/>00100 1 99999<br/>99999 5 68237<br/>68237 6 -1