Skip to content

Commit 84ee6db

Browse files
authored
Create odd_even_linked_list.py
1 parent 2f087a5 commit 84ee6db

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

odd_even_linked_list.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
"""
2+
Definition of ListNode
3+
class ListNode(object):
4+
def __init__(self, val, next=None):
5+
self.val = val
6+
self.next = next
7+
"""
8+
9+
class Solution:
10+
"""
11+
@param head: a singly linked list
12+
@return: Modified linked list
13+
"""
14+
def oddEvenList(self, head):
15+
# write your code here
16+
odd_head, odd_tail = None, None # 奇偶分开再合并
17+
even_head, even_tail = None, None
18+
is_odd = True
19+
while head != None:
20+
node = head
21+
head = node.next
22+
node.next = None
23+
if is_odd:
24+
if odd_head is None:
25+
odd_head = node
26+
odd_tail = node
27+
else:
28+
odd_tail.next = node
29+
odd_tail = node
30+
else:
31+
if even_head is None:
32+
even_head = node
33+
even_tail = node
34+
else:
35+
even_tail.next = node
36+
even_tail = node
37+
is_odd = not is_odd
38+
if odd_head:
39+
odd_tail.next = even_head
40+
return odd_head
41+
else:
42+
return even_head
43+
44+
# medium: https://www.lintcode.com/problem/odd-even-linked-list

0 commit comments

Comments
 (0)