将给定链表两两倒置,如 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 }
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 }