Description
Given a singly linked list L: L0→L1→…→L**n-1→Ln,
reorder it to: L0→L**n→L1→L**n-1→L2→L**n-2→…
You may not modify the values in the list’s nodes, only nodes itself may be changed.
Example 1:
1 | Given 1->2->3->4, reorder it to 1->4->2->3. |
Example 2:
1 | Given 1->2->3->4->5, reorder it to 1->5->2->4->3. |
解法
思路:
找到链表的中点,并将链表从中点处断开,形成两个独立的链表
将第二个链翻转。
将第二个链表的元素间隔地插入第一个链表中。
具体代码如下:
1 | class Solution { |