328 Odd Even Linked List
Python
class Solution(object):
def oddEvenList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
oddDummy = ListNode(-1)
evenDummy = ListNode(-1)
oddCur, evenCur = oddDummy, evenDummy
cnt = 1
while(head):
next = head.next
head.next = None
if cnt % 2 == 1:
oddCur.next = head
oddCur = oddCur.next
else:
evenCur.next = head
evenCur = evenCur.next
head = next
cnt += 1
oddCur.next = evenDummy.next
return oddDummy.next
Java
class Solution {
public ListNode oddEvenList(ListNode head) {
int cnt = 1;
ListNode oddDummy = new ListNode(-1);
ListNode evenDummy = new ListNode(-1);
ListNode oddP = oddDummy, evenP = evenDummy;
while(head != null)
{
ListNode next = head.next;
head.next = null;
if(cnt % 2 == 0){
evenP.next = head;
evenP = evenP.next;
}
else{
oddP.next = head;
oddP = oddP.next;
}
cnt += 1;
head = next;
}
oddP.next = evenDummy.next;
return oddDummy.next;
}
}