采用单链表按递增排序代码
时间: 2024-10-13 22:19:07 浏览: 25
用单链表实现插入排序
在Python中,你可以通过创建一个节点类,然后遍历链表,对每个节点的值进行比较并插入到已排序部分的适当位置来实现单链表的递增排序。这里是一个简单的示例:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def insertion_sort_linked_list(head):
if head is None or head.next is None:
return head
dummy = ListNode(0)
dummy.next = head
current = dummy
while current.next:
if current.next.val < current.val:
# 将当前节点的值移到正确的顺序位置
temp = current.next
prev = current
while prev.next and prev.next.val > temp.val:
prev = prev.next
temp.next = prev.next
prev.next = temp
else:
current = current.next
return dummy.next
# 示例
head = ListNode(4, ListNode(2, ListNode(1, ListNode(3))))
sorted_head = insertion_sort_linked_list(head)
```
在这个代码中,我们使用了一个虚拟头结点`dummy`来简化操作,因为我们需要从链表的第一个元素开始处理。`current`变量跟踪正在处理的节点,而`prev`用于帮助找到插入新值的正确位置。
阅读全文