首页 > 代码库 > LeetCode-Insertion Sort List (Python)

LeetCode-Insertion Sort List (Python)

【问题】

Sort a linked list using insertion sort.

【代码】

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    # @param head, a ListNode
    # @return a ListNode
    def insertionSortList(self, head):
        if head == None or head.next == None:
    		return head
    	dummy = ListNode(0)
    	dummy.next = head
    	cur = head
    	while cur.next != None:
    		if cur.next.val < cur.val:
    			pre = dummy
    			while pre.next.val < cur.next.val:
    				pre = pre.next
    			temp = cur.next
    			cur.next = temp.next
    			temp.next = pre.next
    			pre.next = temp
    		else:
    			cur = cur.next
    	return dummy.next