将给定链表两两倒置,如 P1 -> P2 -> P3 -> P4 -> P5,转换为 P2 -> P1 -> P4 -> P3 -> P5.
给定链表类 Node{Node* next},写出该转换函数 Node* Fun(Node* line)
1
static LinkedListNode Fun(LinkedListNode root)
2
{
3
LinkedListNode top = null;
4
LinkedListNode parent = null;
5
6
while (root != null) {
7
LinkedListNode next = root.Next;
8
root.Next = null;
9
10
if (next == null)
11
{
12
if (parent == null) top = root;
13
else parent.Next = root;
14
break;
15
}
16
else
17
{
18
LinkedListNode nnext = next.Next;
19
if (parent == null) top = next;
20
else parent.Next = next;
21
next.Next = root;
22
parent = root;
23
root = nnext;
24
}
25
}
26
27
return top;
28
}
static LinkedListNode Fun(LinkedListNode root)2
{3
LinkedListNode top = null;4
LinkedListNode parent = null;5

6
while (root != null) {7
LinkedListNode next = root.Next;8
root.Next = null;9

10
if (next == null)11
{12
if (parent == null) top = root;13
else parent.Next = root;14
break;15
}16
else17
{18
LinkedListNode nnext = next.Next;19
if (parent == null) top = next;20
else parent.Next = next;21
next.Next = root;22
parent = root;23
root = nnext;24
}25
}26

27
return top;28
}
