public class Solution {
public ListNode oddEvenList(ListNode head) {
if(head == null)
return head;
ListNode oddHead = head,evenHead =head.next;
ListNode prevOdd = oddHead,prevEven = evenHead;
while(prevOdd.next != null && prevEven.next != null){
prevOdd.next = prevEven.next;
prevOdd = prevOdd.next;
prevEven.next = prevOdd.next;
prevEven = prevEven.next;
}
prevOdd.next = evenHead;
return oddHead;
}
}
这里仅做简单解释,也就是用两个指针来解决这一问题。两个指针交替后移,每次移动两个单位。