📅  最后修改于: 2023-12-03 14:56:20.029000             🧑  作者: Mango
插入排序(Insertion Sort)是一种简单直观的排序算法,其基本思想是将一个记录插入到已经有序的有序表中,构造一个新的有序表。在单链表中进行插入排序,需要移动指针来实现插入排序。下面我们介绍一个用于在单链表中进行插入排序的Python程序。
class Node:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def insertionSortList(head: Node) -> Node:
dummy = Node(-1)
cur = head
while cur:
pre = dummy
while pre.next and pre.next.val < cur.val:
pre = pre.next
tmp = cur.next
cur.next = pre.next
pre.next = cur
cur = tmp
return dummy.next
Node
类,包含两个属性: val
和 next
。insertionSortList
函数,接收一个单链表头节点 head
。dummy
节点,用于记录插入排序后的链表头节点。cur
节点,用于遍历原链表。pre.next
节点和 cur
节点的值,并移动 pre
节点。tmp
节点记录 cur.next
,并将 cur
节点插入到 pre.next
和 pre
节点之间。cur
节点到下一个节点。dummy.next
节点作为插入排序后的链表头节点。通过这个Python程序实现,在单链表中进行插入排序,可以方便地对单链表进行排序操作。同时,也可以通过对链表节点 Node
类的属性进行修改,对链表节点进行更多的操作。