C语言 | Leetcode C语言题解之第147题对链表进行插入排序

题目:

题解:

cpp 复制代码
struct ListNode *insertionSortList(struct ListNode *head) {
    if (head == NULL) {
        return head;
    }
    struct ListNode *dummyHead = malloc(sizeof(struct ListNode));
    dummyHead->val = 0;
    dummyHead->next = head;
    struct ListNode *lastSorted = head;
    struct ListNode *curr = head->next;
    while (curr != NULL) {
        if (lastSorted->val <= curr->val) {
            lastSorted = lastSorted->next;
        } else {
            struct ListNode *prev = dummyHead;
            while (prev->next->val <= curr->val) {
                prev = prev->next;
            }
            lastSorted->next = curr->next;
            curr->next = prev->next;
            prev->next = curr;
        }
        curr = lastSorted->next;
    }
    return dummyHead->next;
}
相关推荐
Coding_Doggy4 分钟前
重装系统C盘格式化,MYSQL恢复
c语言·mysql·adb
历程里程碑7 分钟前
C++ 8:list容器详解与实战指南
c语言·开发语言·数据库·c++·windows·笔记·list
小尧嵌入式13 分钟前
C++11线程库的使用(上)
c语言·开发语言·c++·qt·算法
mywyu_wmb30 分钟前
编译CEF 132.3.3
c语言
wadesir39 分钟前
Judy数组:C语言中的高性能动态数组(全面入门Judy库使用指南)
c语言·开发语言
sheeta199841 分钟前
LeetCode 每日一题笔记 日期:2025.12.14 题目:2147.分隔长廊的方案数
linux·笔记·leetcode
一个平凡而乐于分享的小比特42 分钟前
C语言中 volatile 关键字总结
c语言·volatile
发疯幼稚鬼42 分钟前
插入排序与冒泡排序
c语言·数据结构·算法·排序算法
一个平凡而乐于分享的小比特1 小时前
static 关键字详解
c语言·static
一个平凡而乐于分享的小比特1 小时前
C语言内存布局
c语言·const·内存布局