Sort a linked list using insertion sort.
It is an insertion sort problem, we can treat it like sort array with insertion sort.
The main idea is to find the spot that mismatch the order.
# 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 head
dummy.next=head
cur=head
while cur.next:
if cur.next.val<cur.val: #if mismatch
pre=dummy # start sort from the head
while pre.next.val<cur.next.val:# find the spot to swop
pre=pre.next
tmp=cur.next
cur.next=tmp.next
tmp.next=pre.next
pre.next=tmp
else:
cur=cur.next
return dummy.next
链表插入排序
本文介绍了一种使用插入排序算法对链表进行排序的方法。通过在链表中找到不匹配排序顺序的位置,并将其调整到正确的位置来实现排序。适用于理解链表操作及排序算法。

被折叠的 条评论
为什么被折叠?



