###### Uwen

Given a constant KK and a singly linked list LL, you are supposed to reverse the links of every KK elements on LL. For example, given LL being 1→2→3→4→5→6, if K = 3K=3, then you must output 3→2→1→6→5→4; if K = 4K=4, you must output 4→3→2→1→5→6.
Input Specification:

Each input file contains one test case. For each case, the first line contains the address of the first node, a positive NN (\le 10^5≤10
​5
​​ ) which is the total number of nodes, and a positive KK (\le N≤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 NN lines follow, each describes a node in the format:
where Address is the position of the node, Data is an integer, and Next is the position of the next node.
Output Specification:

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.
Sample Input:

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

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

#include <iostream>
#include <vector>
using namespace std;

{
int rank;

int main()
{

cin >> N;
cin >> listnum;

for (int i = 0; i < N; i++)
{
cin >> rank;

}

current = top;
top->parent = NULL;
for (int i = 0; i < N; i++)
{
current->rank = i+1;
if (i != N - 1)//not the last node
{
current->child = child;
child->parent = current;
current = child;
}
else
{
current->child = NULL;
}
}
int count;
current = top;
bool flag = false;
while (current != NULL)
{
count = 1;
child = current;
if (flag)
while (current != NULL&&count!=listnum)
{
current = current->child;
count++;
}
if (count == listnum)
{
child = current;

for (int j = 0; j < listnum-1; j++)
{
//if (child->parent != NULL)
child = child->parent;
}
current = current->child;
flag = true;
}
else
{
for (int j = 0; j < count-2; j++)
{
child = child->child;
}
printf("%05d %d %d\n", child->base_add, child->rank, -1);
break;
}

}

return 0;
}

#### [pta]02-线性结构3 Reversing Linked List (25分)

2017-03-16 21:31:15

#### PAT 02-线性结构3 Reversing Linked List 【JAVA实现】

2016-10-25 12:03:15

#### 02-线性结构2 Reversing Linked List (25分)

2016-03-26 17:09:04

#### 02-线性结构3 Reversing Linked List (25分)

2016-10-12 00:45:57

2016-09-28 00:18:35

#### C语言 02-线性结构3 Reversing Linked List

2018-03-24 14:44:43

#### 02-线性结构3 Reversing Linked List (25分)

2016-10-20 19:41:35

#### 02-线性结构1. Reversing Linked List (25)

2015-03-27 10:15:37

#### 02-线性结构3 Reversing Linked List（25 point(s)） 【链表】

2018-03-31 18:20:53

#### 数据结构 PAT 02-线性结构2 Reversing Linked List 单链表实现

2015-09-30 19:20:57