-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path328-Odd-Even-Linked-List.py
49 lines (41 loc) · 1.09 KB
/
328-Odd-Even-Linked-List.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def oddEvenList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
evenList = None
evenListEnd = None
curPtr = head
lastPtr = head
oddEnd = head
count = 2
if not head or not head.next:
return head
lastPtr = head
curPtr = head.next
while curPtr:
if count % 2 == 0:
lastPtr.next = curPtr.next
if evenList:
evenListEnd.next = curPtr
else:
evenList = curPtr
evenListEnd = curPtr
else:
oddEnd = curPtr
count += 1
lastPtr = curPtr
curPtr = curPtr.next
if evenListEnd:
evenListEnd.next = None
if oddEnd:
oddEnd.next = evenList
else:
return evenList
return head