链表OJ---排序链表

news2024/9/25 2:26:13

https://leetcode.cn/problems/7WHec2/description/

 

//合并
struct ListNode* merge_link(struct ListNode* head1, struct ListNode* head2) {
    struct ListNode* temhead = malloc(sizeof(struct ListNode));
    temhead->val = 0;
    struct ListNode *tmp = temhead, *cur1 = head1, *cur2 = head2;
    while (cur1 && cur2) {
        if (cur1->val <= cur2->val) {
            tmp->next = cur1;
            cur1 = cur1->next;
        } else {
            tmp->next = cur2;
            cur2 = cur2->next;
        }
        tmp = tmp->next;
    }
    if (cur1) {
        tmp->next = cur1;
    }
    if (cur2) {
        tmp->next = cur2;
    }
    return temhead->next;
}
//分解
struct ListNode* merge_div(struct ListNode* head, struct ListNode* tail) {
    //空结点,因为传参时,我们将NULL当作原链表的尾结点
    if (head == NULL)
        return head;
    //单个结点
    if (head->next == tail)
    {
        head->next = NULL;
        return head;
    }

    //快慢指针找中点
    struct ListNode *slow = head, *fast = head;
    while (fast != tail) {
        slow = slow->next;
        fast = fast->next;
        if (fast != tail) {
            fast = fast->next;
        }
    }
    // slow为中点
    struct ListNode* mid = slow;
    return merge_link(merge_div(head, mid), merge_div(mid, tail));
}

struct ListNode* sortList(struct ListNode* head) {
    return merge_div(head, NULL);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1408578.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Endnote中文献数据库的整体导出迁移,以及导入到新计算机具体步骤-以Endnote X8为例

Endnote中文献数据库的整体导出迁移&#xff0c;以及导入到新计算机具体步骤-以Endnote X8为例 在学习和研究中&#xff0c;有时会使用文献管理工具Endnote会积累一些重要的文献&#xff0c;当对某个问题进行了深入研究后&#xff0c;可能会积累成百上千的文献及其文献批注等。…

【GitHub项目推荐--网站归档平台】【转载】

ArchiveBox&#xff1a;网站归档平台 ArchiveBox 是基于 Python 的强大网页归档解决方案&#xff0c;可以自动把网页变成静态页面&#xff08;HTML、PDF、图片&#xff09;&#xff0c;并自动提取和保存文本、音频等内容&#xff0c;可以用来做镜像站、档案馆、离线阅读等。 开…

笔记本外接显示器的配置方法

目录 第一步 点击左下角&#xff0c;选择“设置” 第二步 选择系统&#xff0c;默认进入屏幕页面&#xff0c;页面往下拉&#xff0c;找到多显示器下拉框 前提&#xff1a;插好显示器的电源插头且插上笔记本HDMI线 第一步 点击左下角&#xff0c;选择“设置” 第二步 选择系…

探索 XMLHttpRequest:网页与服务器的异步通信之道(上)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

gin路由篇

1. 基本路由 gin 框架中采用的路由库是基于httprouter做的 import ("net/http""github.com/gin-gonic/gin" )func main() {// 1.创建路由r : gin.Default()// 2.绑定路由规则&#xff0c;执行的函数// gin.Context&#xff0c;封装了request和responser.…

C++内存泄漏检测工具

在程序中增加相应的内存检测工具 #define CRTDBG MAP ALLOC #include <stdlib.h> #include <crtdbg.h> #ifdef DEBUG #ifndef DBGNEW #define DBG_NEW new (_NORMAL_BLOCK&#xff0c;_FILE_LINE_) #define new DBG NEW #endif #endif _CrtDumpMemoryLeaks(); …

linux条件判断练习

1.实现自动生成相应的压缩包 1.写一个脚本&#xff0c;完成如下功能 传递一个参数给脚本&#xff0c;此参数为gzip、bzip2或者xz三者之一&#xff1b; (1) 如果参数1的值为gzip&#xff0c;则使用tar和gzip归档压缩/etc目录至/backups目录中&#xff0c;并命名为/backups/etc-…

2024年图像处理与大数据信息应用国际会议(ICIPCDIA 2024)

2024年图像处理与大数据信息应用国际会议(ICIPCDIA 2024) 2024 International Conference on Image Processing and Big Data Information Applications(ICIPCDIA 2024) 数据库&#xff1a;EI,CPCI,CNKI,Google Scholar等检索 一、【会议简介】 ​2024年图像处理与大数据信息应…

李宏毅《机器学习 深度学习》简要笔记(一)

一、线性回归中的模型选择 上图所示&#xff1a; 五个模型&#xff0c;一个比一个复杂&#xff0c;其中所包含的function就越多&#xff0c;这样就有更大几率找到一个合适的参数集来更好的拟合训练集。所以&#xff0c;随着模型的复杂度提高&#xff0c;train error呈下降趋势…

专业130+总分420+上海交通大学819考研经验分享上海交大电子信息与通信工程

今年专业课819信号系统与信息处理&#xff08;ss和dsp&#xff09;130&#xff0c;总分420&#xff0c;如愿梦圆交大&#xff0c;以下总结了自己这一年专业课&#xff0c;基础课复习经历&#xff0c;希望对大家复习有所帮助。专业课819信号系统与信号处理&#xff1a; 交大819…

Redisson 分布式锁解决主从一致性问题的原理

目录 一、主从不一致产生原因 二、Redisson 解决主从一致性的原理 一、主从不一致产生原因 1. Redis 主从集群&#xff1a;主从读写分离&#xff0c;主节点将数据同步给从节点 主节点&#xff1a;增删改从节点&#xff1a;读 2. 主从同步存在延迟&#xff0c;若主节点宕机…

基于Python Django的大数据招聘数据分析系统,包括数据大屏和后台管理

基于Python Django的大数据招聘数据分析系统是一个综合利用大数据技术和数据可视化技术的招聘行业解决方案。该系统旨在帮助企业和招聘机构更好地理解和分析招聘市场的趋势和变化&#xff0c;从而提高招聘效率和质量。 首先&#xff0c;该系统提供了一个强大的后台管理功能&am…

数据结构之受限线性表

受限线性表 对于一般线性表&#xff0c;虽然必须通过遍历逐一查找再对目标位置进行增、删和查操作&#xff0c;但至少一般线性表对于可操作元素并没有限制。说到这里&#xff0c;大家应该明白了&#xff0c;所谓的受限线性表&#xff0c;就是可操作元素受到了限制。 受限线性表…

【数据库连接】连接sqlite3报错:go-sqlite3 requires cgo to work. This is a stub

报错信息 register db Ping default, Binary was compiled with ‘CGO_ENABLED0’, go-sqlite3 requires cgo to work. This is a stubWindows解决办法 新建环境变量 新报错 Failed to build the application: # runtime/cgo cgo: C compiler “gcc” not found: exec: “gc…

如何为视频内多角色进行翻译配音?含教程和案例

多角色翻译配音有哪些实用场景&#xff1f; 多角色翻译配音可以应用于任何需要在音频或视频中区分不同角色的情境中&#xff0c;以提高听众的理解和体验。这些场景都需要专业的配音演员和翻译人员来确保高质量的表现。多角色翻译配音在不同情境下都可以有实用场景&#xff0c;…

堆的概念,性质及其实现

1.堆的概念及结构 如果有一个关键码的集合K { &#xff0c; &#xff0c; &#xff0c;…&#xff0c; }&#xff0c;把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中&#xff0c;并满足&#xff1a; < 且 < ( > 且 > ) i 0&#xff0c;1&#x…

系统移植,GNU命令,Uboot移植

一.GNU命令 1、addr2line 把程序地址转换为文件名和行号 做调试 2、ar 建立&#xff0c;修改&#xff0c;提取归档文件 3、Id:GNU arm-none-linux-gnueabi-ld start.o main.o -Tmap.lds -o uart.elf 链接器 4、as 主要用来编译GNU编译器gcc输出的汇编文件&a…

JVM实战(31)——内存溢出之请求超时

一、简介 本章&#xff0c;我们将通过实际案例讲解一个Web应用的内存溢出问题&#xff0c;该内存溢出问题的排查涉及Tomcat的一些底层原理&#xff0c;最终排查发现是由于请求超时问题导致&#xff0c;我们先来看下系统的背景。 1.1 系统背景 生产环境的一个系统发生告警&…

PyTorch内置损失函数汇总 !!

文章目录 一、损失函数的概念 二、Pytorch内置损失函数 1. nn.CrossEntropyLoss 2. nn.NLLLoss 3. nn.NLLLoss2d 4. nn.BCELoss 5. nn.BCEWithLogitsLoss 6. nn.L1Loss 7. nn.MSELoss 8. nn.SmoothL1Loss 9. nn.PoissonNLLLoss 10. nn.KLDivLoss 11. nn.MarginRankingLoss 12. …

sylar高性能服务器-日志(P26-P29)内容记录

文章目录 P26&#xff1a;协程01一、方法函数二、结果展示 P27-28&#xff1a;协程02-03一、方法函数二、结果展示 P29&#xff1a;协程04一、方法函数二、结果展示 P26&#xff1a;协程01 ​ 本节内容主要介绍了开始协程的一些准备工作&#xff0c;平常我们使用assert断言时&…