力扣hot100——排序链表(常见方法,归并排序)

解题思路:
- 分解(Divide):将待排序的列表递归地分成两半,直到每个子列表只包含一个元素(此时每个子列表都是有序的)。
- 解决(Conquer):递归地对每个子列表进行排序。由于每个子列表在分解过程中最终只包含一个元素,因此它们自然是有序的。排序的过程实际上是合并的过程。
- 合并(Combine):将两个有序的子列表合并成一个有序的列表。
步骤
- 递归分解:
- 如果列表的长度为1或0,则直接返回该列表(因为它已经是有序的)。
- 否则,找到列表的中间位置,将列表分成两个子列表。
- 递归地对两个子列表进行归并排序。
- 合并:
- 创建一个新的空列表用于存放合并后的结果。
- 使用两个指针分别指向两个子列表的开头。
- 比较两个指针所指向的元素,将较小的元素添加到新列表中,并将相应指针向前移动一位。
- 重复上述步骤,直到其中一个子列表中的所有元素都添加到新列表中。
- 将另一个子列表中剩余的元素(如果有)添加到新列表中。
/*** 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* sortList(ListNode* head) {if (!head || !(head->next)) {return head;}// 归并排序:首先一分为二ListNode *slow = head;ListNode *fast = head->next;while(fast && fast->next){slow = slow->next;fast = fast->next->next;}ListNode *second = slow->next;slow->next = NULL;ListNode *first = head;// 递归进行归并排序first = sortList(first);second = sortList(second);return Merge(first,second); // 合并后链表}ListNode* Merge(ListNode*first,ListNode*second){ListNode* dummy = new ListNode(0);ListNode* tail = dummy;while(first && second){if(first->val > second->val){tail->next = second;second = second->next;}else{tail->next = first;first = first->next;}tail = tail->next;}// 存在没有加入的部分则加入dummyif(first){tail->next = first;}else if(second){tail->next = second;}return dummy->next;}};
相关文章:
力扣hot100——排序链表(常见方法,归并排序)
解题思路: 分解(Divide):将待排序的列表递归地分成两半,直到每个子列表只包含一个元素(此时每个子列表都是有序的)。解决(Conquer):递归地对每个子列表进行排…...
使用 DeepSeek 和 ECharts 实现大屏数据可视化
引言 在当今数据驱动的时代,数据可视化成为了分析和展示数据的重要手段。大屏数据可视化不仅能够直观地展示数据,还能帮助决策者快速理解复杂信息。本文将介绍如何结合 DeepSeek(一个强大的数据处理与分析工具)和 ECharts(一个流行的数据可视化库)来实现大屏数据可视化。…...
基于springboot+vue的新生报到管理系统
一、系统架构 前端:vue | element-ui | echarts 后端:springboot | mybatis-plus | jwt 环境:jdk1.8 | mysql | maven 二、代码及数据 三、功能介绍 01. 登录 02. 首页 03. 管理员-系统管理-用户管理 04. 管理员-系统…...
【面试系列】Java开发--AI常见面试题
文章目录 1、实际工作或学习中用过哪些Ai工具1.1、AI编程1.2、AI对话聊天1.3、AI图像工具1.4、AI办公工具 2、谈谈你知道的AI领域的一些常见词汇及其含义的理解? 例如AIGC、LLM、DeepLearning分别是什么意思?2.1、AIGC(Artificial Intelligen…...
Maven 基础环境搭建与配置(二)
四、本地仓库配置,存储依赖 在 Maven 的世界里,本地仓库就像是一个 “私人储物间”,专门用来存放项目所需的各种依赖构件,如 JAR 包、WAR 包等。当我们构建项目时,Maven 会首先在本地仓库中查找所需的依赖,…...
了解ffmpeg,安装并配置环境变量
一、了解FFmpeg FFmpeg 是一个功能强大的开源多媒体框架,能够处理音视频的录制、转换和流媒体传输。它由 Fabrice Bellard 发起,采用 LGPL/GPL 许可证,广泛应用于各种平台,包括 Linux、Windows 和 macOS 什么是FFmpeg࿱…...
Deepseek reasoning-content 透出调研
Deepseek reasoning-content 透出调研 部署方式:Docker Ollama Deepseek-R1:8b 参考: https://help.apiyi.com/deepseek-reasoning-content-guide.htmlhttps://yuluo-yx.github.io/blog/%E4%BD%BF%E7%94%A8-Ollama-%E9%83%A8%E7%BD%B2-DeepSeek-%E5…...
Codes 开源免费研发项目管理平台 2025年第一个大版本3.0.0 版本发布及创新的轻IPD实现
Codes 简介 Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台,支持云端认证、本地部署、全部功能开放,并且对 30 人以下团队免费。它通过创新的方式简化研发协同工作,使敏捷开发更易于实施。并提供低成本的敏捷开发解决方案࿰…...
Leetcode K个一组翻转链表
双指针法,java solution class Solution {public ListNode reverseKGroup(ListNode head, int k) {if(head null || head.next null) return head;//设置pre和index节点ListNode pre head, index head.next;int m 0;while(m < k && index ! null) …...
电脑开机一段时间就断网,只有重启才能恢复网络(就算插网线都不行),本篇文章直接解决,不要再看别人的垃圾方法啦
下面的是我解决问题的心路历程,不想看的可以直接跳到解决方法上面! 内心思路: w11电脑更新过系统后,我的电脑是常年不关机的,但是一天突然断网,试了很多方法都连不上,重启电脑就会好࿰…...
Python 性能剖析利器:DTrace 与 SystemTap 深度指南
在 Python 开发过程中,深入了解程序的运行时行为对于优化性能、排查问题至关重要。本文聚焦于 DTrace 和 SystemTap 这两款强大的监控工具,详细介绍它们在 CPython 中的应用,包括启用静态标记、编写 DTrace 和 SystemTap 脚本、利用可用的静态…...
unity学习47:寻路和导航,unity2022后版本如何使用 Navmesh 和 bake
目录 1 寻路和导航对移动的不同 1.1 基础的移动功能 1.1.1 基础移动 1.1.2 智能导航寻路 1.1.3 智能导航寻路还可以 2 如何实现这个效果? 2.1 通过地图网格的形式 2.1.1 警告信息 the static value has been deprecated的对应搜索 2.1.2 新的navigation ba…...
工作-绩效笔记
文章目录 销售项目经理研发项目管理人天拆分抓手评估人天如何拆的细而且有理有据管理等 对这个一直不感兴趣,干好活就行了,但是公司肯定是出于量化的指标,而且不同角色指标不一样,记录下也科普下自己。 销售 销售额 确收、回款 …...
GPT-SoVITS更新V3 win整合包
GPT-SoVITS 是由社区开发者联合打造的开源语音生成框架,其创新性地融合了GPT语言模型与SoVITS(Singing Voice Inference and Timbre Synthesis)语音合成技术,实现了仅需5秒语音样本即可生成高保真目标音色的突破。该项目凭借其开箱…...
WPF的页面设计和实用功能实现
目录 一、TextBlock和TextBox 1. 在TextBlock中实时显示当前时间 二、ListView 1.ListView显示数据 三、ComboBox 1. ComboBox和CheckBox组合实现下拉框多选 四、Button 1. 设计Button按钮的边框为圆角,并对指针悬停时的颜色进行设置 一、TextBlock和TextBox…...
Python项目源码34:网页内容提取工具1.0(Tkinter+requests+html2text)
------★Python练手项目源码★------- Python项目32:订单销售额管理系统1.0(TkinterCSV) Python项目31:初学者也能看懂的聊天机器人1.0源码(命令行界面Re正则表达式) Python项目源码30:待办事…...
javaSE学习笔记22-线程(thread)-线程通信、线程池
线程通信 应用场景:生产者和消费者问题 假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费 如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,…...
vue单据打印 一维码、二维码实现
编码规则与 JavaScript 代码实现 编码规则数组:定义了 Code 128 条形码编码规则数组 BARS,其中每个数字对应一种条形码的线条组合模式。 const BARS [212222,222122,222221,121223,121322,131222,122213,122312,132212,221213,221312,231212,112232,12…...
远程控制macOS一直卡在100%,能连接上了却只显示了壁纸?
前言 前段时间有个朋友过来咨询关于Windows使用第三方远程软件(向日葵、Todesk等)远程连接控制macOS系统,但出现了一些奇奇怪怪的问题。 比如在连接的时候,一直卡在100%连接,对方的电脑却已经显示已经被控制的状态。…...
Spring Boot定时任务原理
Spring Boot定时任务原理 在现代应用中,定时任务的调度是实现周期性操作的关键机制。Spring Boot 提供了强大的定时任务支持,通过注解驱动的方式,开发者可以轻松地为方法添加定时任务功能。本文将深入探讨 Spring Boot 中定时任务的实现原理…...
Page Assist架构解析:构建本地优先的浏览器AI助手技术方案
Page Assist架构解析:构建本地优先的浏览器AI助手技术方案 【免费下载链接】page-assist Use your locally running AI models to assist you in your web browsing 项目地址: https://gitcode.com/GitHub_Trending/pa/page-assist 在数据隐私日益重要的今天…...
向量搜索不再绕过ORM?EF Core 10原生向量查询语法全解析,从LINQ to Vector到混合语义+结构化联合检索
第一章:向量搜索不再绕过ORM?EF Core 10原生向量查询语法全解析,从LINQ to Vector到混合语义结构化联合检索EF Core 10 首次将向量搜索能力深度集成至 LINQ 查询管道,彻底终结此前需绕过 ORM、手动拼接 SQL 或调用数据库原生函数的…...
哨兵2号 vs Landsat 8:10米和30米分辨率下,GEE提取水体结果差异有多大?
哨兵2号与Landsat 8水体提取实战对比:分辨率差异如何影响监测精度? 当我们需要监测湖泊、河流或湿地时,卫星遥感无疑是最经济高效的选择。但在实际操作中,面对哨兵2号的10米分辨率和Landsat 8的30米分辨率,很多研究者都…...
从零部署到三维感知:ROS与RealSense D435i深度相机实战指南
1. 环境准备与驱动安装 第一次接触RealSense D435i深度相机时,我花了整整两天时间才把驱动装好。现在回想起来,其实只要掌握几个关键步骤就能避免90%的坑。先说说硬件连接:D435i通过USB 3.0接口供电和数据传输,一定要使用原装线材…...
从一颗芯片的“衰老”说起:用Arrhenius模型和加速测试搞定MTBF验证
从一颗芯片的"衰老"说起:用Arrhenius模型和加速测试搞定MTBF验证 当你的手机在两年后开始卡顿,或是数据中心服务器突然宕机,背后往往藏着一个微观世界里的秘密——电子元器件正在经历一场不可逆的"衰老"过程。这种衰老不…...
WarcraftHelper终极指南:5分钟让魔兽争霸3在现代电脑上重生
WarcraftHelper终极指南:5分钟让魔兽争霸3在现代电脑上重生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代电脑上无…...
推荐一些可以用于论文降重的软件:哪些平台能同时降低查重率和AIGC疑似率?2026年实测TOP5对比,AIGC率最低降至5%!
【博主按】 各位CSDN的极客和科研搬砖人们,五月答辩季的“代码”都跑通了吗?最近后台收到海量求助报Bug:自己的论文好不容易把字面查重率“Debug”到了8%,结果一提交教务处的系统,直接弹出了个致命错误——“AIGC疑似率…...
如何增加RAC节点_addnode.sh脚本执行与实例扩展全流程
addnode.sh执行失败主因是网络与权限未对齐:需验证SSH免密、/etc/hosts双向解析、GI用户一致性;CRS启动失败多因OCR/Voting磁盘权限或路径问题;实例未注册需手动srvctl add/start;连接ORA-12514系监听缺静态注册。addnode.sh 执行…...
torch.cuda.is_available()返回False?手把手教你从驱动到环境逐项排查
深度学习环境配置:系统性解决PyTorch GPU识别问题全指南 当你在终端输入torch.cuda.is_available(),期待看到True却得到False时,那种挫败感每个深度学习开发者都深有体会。这不是简单的安装问题,而是涉及驱动、环境、版本匹配等多…...
告别sc.exe!用NSSM把任意exe变成Windows服务(附Frpc实战配置)
告别sc.exe!用NSSM把任意exe变成Windows服务(附Frpc实战配置) 在Windows服务器管理中,将应用程序转化为系统服务一直是运维人员的刚需。传统sc.exe命令虽然功能完整,但其晦涩的语法和有限的配置选项常让人望而生畏。当…...
