給定單鏈表的頭節(jié)點 head 枉氮,將所有索引為奇數(shù)的節(jié)點和索引為偶數(shù)的節(jié)點分別組合在一起暖庄,然后返回重新排序的列表。
第一個節(jié)點的索引被認為是 奇數(shù) 雄驹, 第二個節(jié)點的索引為 偶數(shù) ,以此類推俘侠。
請注意蔬将,偶數(shù)組和奇數(shù)組內(nèi)部的相對順序應(yīng)該與輸入時保持一致爷速。
你必須在 O(1) 的額外空間復(fù)雜度和 O(n) 的時間復(fù)雜度下解決這個問題霞怀。
輸入: head = [1,2,3,4,5]
輸出: [1,3,5,2,4]
class Solution {
public ListNode oddEvenList(ListNode head) {
if (head == null) {
return head;
}
ListNode odd = head;
ListNode even = head.next;
ListNode evenHead = even;
while (even != null && even.next != null) {
odd.next = even.next;
odd = odd.next;
even.next = odd.next;
even = even.next;
}
odd.next = evenHead;
return head;
}
}