(分治算法8)leecode 148 排序链表

题目描述

给你链表的头结点head,请将其按照升序排列并返回排序后的链表。

解答一:使用递归法进行归并排序

  • 分割环节:找到当前链表的中点,并从中点将链表断开以方便在下次递归的时候cut,链表的片段拥有正确的边界
  • 我们使用fast, slow快慢双指针算法,奇数个节点找到中点,偶数个节点找到中心节点左边的节点,这时候快指针走到结束位置。
   public ListNode sortList(ListNode head) {return head == null ? null : mergeSort(head);}private ListNode mergeSort(ListNode head){if(head.next == null){return head;}ListNode p = head,q =head , pre= null;while(q != null && q.next != null){pre = p;p = p.next;q = q.next.next;}//找到中点之后执行slow.next == null 将链表切断pre.next = null;//将链表切割成左半部分和右半部分//head是左半部分//p是我们右半部分的开始ListNode l = mergeSort(head);ListNode r = mergeSort(p);return merge(l,r);}ListNode merge(ListNode l,ListNode r){//合并就可以了ListNode dummyHead = new ListNode(0);ListNode cur = dummyHead;while(l != null && r != null){if(l.val <= r.val){cur.next = l;cur = cur.next;l = l.next;}else{cur.next = r;cur = cur.next;r = r.next;}}if(l != null){cur.next = l;}if(r != null){cur.next = r;}return dummyHead.next;}}

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

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

相关文章

Java快速开发:力推开源项目若依RuoYi

在Java开发开源框架中&#xff0c;首屈一指的应该若依&#xff0c;在行业里&#xff0c;不管小公司中公司还是大公司&#xff0c;都能够看到若依项目的身影。足以见得 若依框架的受众之大。 RuoYi-Cloud RuoYi-Cloud 是一个 Java EE 分布式微服务架构平台&#xff0c;基于经典…

希腊字母表及其读音

希腊字母是希腊语的字母系统&#xff0c;也被广泛用于数学、物理、化学、工程等领域作为符号标记。 下面是希腊字母表及其读音&#xff1a; Α α (Alpha) - 读作 /ˈlfə/Β β (Beta) - 读作 /ˈbeɪtə/Γ γ (Gamma) - 读作 /ˈgmə/Δ δ (Delta) - 读作 /ˈdɛltə/Ε …

基于新型切片轮廓转换超分辨率的深度生成网络的高分辨率3D MRI重建

高分辨率磁共振成像(MRI)序列,如3D Turbo或快速自旋回波(TSE/FSE)成像,在临床上备受欢迎,但在转换成首选方向时往往因扫描时间过长而产生模糊问题。因此,常常采用多层面二维(2D)TSE成像,因其高平面分辨率而被广泛使用,但在临床上由于体素拉长和由于阶梯状伪影而导致的横向…

基于Spring Boot+VUE简历系统

1管理员功能模块 管理员登录&#xff0c;通过填写用户名、密码、角色进行登录&#xff0c;如图1所示。 图1管理员登录界面图 管理员登录进入简历系统可以查看首页、个人中心、用户管理、简历模板管理、模板类型管理、招聘会管理、报名招聘管理、简历上传管理、求职论坛、我的收…

简站WordPress是最简洁好用易上手的wordpress企业建站主题

简站WordPress主题确实是一个非常简洁、好用且易上手的企业建站主题。以下是详细分析&#xff1a; 简洁性&#xff1a;简站WordPress主题采用了扁平化设计风格&#xff0c;界面简洁明了&#xff0c;这使得它在众多WordPress主题中脱颖而出。这种设计不仅美观&#xff0c;还能提…

HarmonyOS角落里的知识:一杯冰美式的时间 -- DragView

一、前言 在学习API9的时候就写了一个DragView,用于展示某个页面的悬浮可拖动的入口&#xff0c;特意丰富了许多的功能&#xff0c;今天分享给大家&#xff5e;。Demo基于API11。 二、思路 因为API本身就带有拖拽的手势&#xff0c;所以直接使用&#xff1a;PanGesture&…

C++之模板(四)

1、用模板实现单例模式 SIngleton.h #include "iostream" using namespace std;template <typename T> class Singleton { public:static T& GetInstance(){Init();return *instance_;}private:static void Init(){if (instance_ 0){instance_ new T;a…

FUANC机器人教程:速度倍率级数与倍率增量设定方法

目录 机器人速度倍率介绍 机器人运行速度倍率切换操作 快速切换速度倍率有效与无效设定 速度倍率级数与增量自定义 速度倍率级数与增量自定义举例 机器人速度倍率介绍 在机器人手动或自动运行时都离不开速度设定&#xff0c;机器人的运行速度由多个要素共同决定&#xff…

拍照翻译软件哪个好用?打破语言壁垒就靠这5款~

还不清楚拍照翻译成中文的软件有哪些的朋友可有福了&#xff01; 今天便一次性给大家测评5款市面上热门且备受好评的拍照翻译工具~想必总有一款能够满足你的翻译需求、一举带你打破语言壁垒~ **稳定翻译的电脑软件** >>全能翻译官 翻译准确率&#xff1a;☆☆☆☆ 译…

corepack管理包管理器;nvm管理node版本;nrm管理npm源地址

corepack corepack 管理"包管理器"&#xff0c;包括 yarn 和 pnpm。corepack 并不能管理 npm。 corepack 是 nodejs 提供的功能&#xff0c;安装 nodejs 时 corepack 就一起安装了。它还是实验性功能&#xff0c;默认是关闭的&#xff0c;具体介绍看官方文档。 注…

产品经理经验分享:电商类项目开发需要了解常用的电商API接口

今天主要分享产品经理设计电商类应用需要了解的常用API&#xff1f; 为什么产品经理需要了解常用电商API接口呢&#xff1f; 1.开需求会&#xff0c;提了新的需求&#xff0c;开发说&#xff0c;你这个需求太复杂&#xff0c;光接口就有20几个&#xff0c;按照排期根本做不完…

【JavaScript脚本宇宙】让表单数据变得简单:探索六种强大的JavaScript库

提升表单体验&#xff1a;比较流行的JavaScript验证库 前言 在现代Web开发中&#xff0c;处理表单数据是一个常见的任务。为了简化这个过程&#xff0c;开发者通常会使用一些JavaScript库来序列化和验证表单数据。在这篇文章中&#xff0c;我们将介绍六种流行的表单处理库&am…

对yoloV8进行标签过滤来实现行人检测

前言 上一章我们介绍的通过迁移学习&#xff0c;在新的行人数据集上使用已经学习到的特征和权重&#xff0c;从而更快地实现行人检测任务。模型就会调整其参数以适应新的数据集&#xff0c;以提高对行人的识别性能。接下来介绍一种更快更便捷的方法&#xff0c;依旧是基于yolo…

ES6(ECMAScript 6.0) 新特性

1 ES6 基本介绍 &#xff08;1&#xff09;ECMAScript 6.0(简称 ES6)是 JavaScript 语言的下一代标准&#xff0c; 2015 年 6 月发布。 &#xff08;2&#xff09;ES6 设计目标&#xff1a;达到 JavaScript 语言可以用来编写复杂的大型程序&#xff0c;成为企业级开发语言 &…

每天一个项目管理概念之干系人

项目管理中的干系人是指那些能够影响项目结果或者受项目结果影响的个人、群体或组织。理解并妥善管理干系人对于项目的成功至关重要。干系人管理是项目管理中的一个关键组成部分&#xff0c;它涉及到识别干系人、分析他们的利益和影响力、制定适当的沟通策略以及管理他们的期望…

Python机器学习完整流程:从数据清洗到推理落地

目录 一、引言 二、数据清洗 数据加载与初步探索 缺失值处理 异常值处理 特征编码与转换 数据集划分 三、模型训练 四、模型文件生成 五、模型部署与推理落地 六、总结 一、引言 在当今数据驱动的时代&#xff0c;机器学习已成为解决复杂问题的有力工具。而…

预埋螺栓抗滑移系数检测 内六角螺栓扭矩系数检测

螺栓检测范围&#xff1a;螺栓&#xff0c;高强螺栓&#xff0c;地脚螺栓&#xff0c;不锈钢螺栓&#xff0c;六角头螺栓&#xff0c;管片螺栓&#xff0c;膨胀螺栓&#xff0c;化学螺栓&#xff0c;镀锌螺栓&#xff0c;植筋螺栓&#xff0c;普通螺栓&#xff0c;钢结构螺栓&a…

Golang免杀-编码加密-Xor(GG)

go语言环境搭建 Golang学习日志 ━━ 下载及安装_golang下载-CSDN博客 go run xxx.go go build xxx.go 首先,cs.msf生成比特流数据. 放入xor,py脚本中进行xor加密. xor.py def xor(shellcode, key):new_shellcode ""key_len len(key)# 对shellcode的每一位进行…

从零开始设计一款gpu from scratch

基于RISC-V核心从零开始打造一款GPU芯片是一项复杂且具有挑战性的任务&#xff0c;涉及到硬件设计、软件支持、性能优化等多个方面。以下是一个详细的步骤指南&#xff0c;帮助你从零开始设计并实现一个基于RISC-V核心的GPU芯片。 1. 定义需求和目标 1.1 应用场景 确定GPU的…

JAVA台球助教台球教练多端系统源码支持微信小程序+微信公众号+H5+APP

&#x1f3b1;台球助教系统&#xff1a;你的私人教练在线等你&#x1f3af; 功能介绍 球厅端&#xff1a;球厅认证、教练人数、教练的位置记录、助教申请、我的项目、签到记录、我的钱包、数据统计 教练端&#xff1a;我的页面&#xff0c;数据统计、订单详情、保证金、实名…