/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
ListNode tail = null;
public ListNode oddEvenList(ListNode head) {
int count = 0;
ListNode temp = head;
while(temp != null){
count++;
tail = temp;
temp = temp.next;
}
if(count <=2) return head;
temp = head;
int curCount = 1;
ListNode oldTail = tail;
while(curCount < count && temp != oldTail){
moveNodeToTail(temp,temp.next);
temp= temp.next;
curCount += 2;
}
return head;
}
public void moveNodeToTail(ListNode preNode,ListNode curNode){
preNode.next = curNode.next;
curNode.next = null;
tail.next = curNode;
tail = tail.next;
}
}