Question
Solution1
首先,排除空,只有一个结点和只有两个结点的情况,直接返回head。
然后创建两个指针,pre和cur。pre指向排序好的奇数部分的末位元素,cur指向未被排序的奇数的前一位。每次交换,都将cur.next放入pre.next的位置。然后串联起来其他部分数据。
需要注意,在每次循环开始前,都要保存cur.next和pre.next,防止丢失。
1 | # Definition for singly-linked list. |
Solution2
考虑创建一个偶数的链表,然后最后将两个链表连接起来。
1 | # Definition for singly-linked list. |