把index为奇数的 和 index为偶数的聚在一起,奇在前偶在后。
第一个node是奇数index.
思路:
奇数index 和 偶数index 分别建两个链表,最后再拼在一起即可。
head就当作奇数链表的头节点,因为第一个节点是不动的。
新建一个节点作为偶数链表的头节点。
public ListNode oddEvenList(ListNode head) {
if(head == null || head.next == null) return head;
ListNode evenHead = new ListNode();
ListNode odd = head;
ListNode even = head.next;
evenHead.next = even;
while(even != null && even.next != null) {
odd.next = even.next;
odd = odd.next;
even.next = odd.next;
even = even.next;
}
odd.next = evenHead.next;
return head;
}