/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* insertionSortList(ListNode* head) {
ListNode* dummy=new ListNode(-1);
while(head)
{
ListNode* next=head->next;
ListNode* p=dummy;
while(p->next && p->next->val <= head->val)p=p->next;
head->next=p->next;
p->next=head;
head=next;
}
return dummy->next;
}
};
lc147
该博客介绍了如何使用C++实现插入排序算法来对链表进行排序。提供的代码中定义了ListNode结构体,用于创建链表节点,并展示了Solution类的insertionSortList方法,该方法通过创建一个虚拟头节点,逐个将未排序节点插入到已排序部分的正确位置,从而完成链表排序。
摘要由CSDN通过智能技术生成