-
Notifications
You must be signed in to change notification settings - Fork 613
/
147.py
33 lines (29 loc) · 790 Bytes
/
147.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
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def insertionSortList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if not head:
return None
sortedList = head
head = head.next
sortedList.next = None
while head:
curr = head
head = head.next
if curr.val <= sortedList.val:
curr.next = sortedList
sortedList = curr
else:
temp = sortedList
while temp.next and temp.next.val < curr.val:
temp = temp.next
curr.next = temp.next
temp.next = curr
return sortedList