[力扣 Hot100]Day33 排序链表

题目描述

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

思路

归并排序即可。
在这里插入图片描述

代码

class Solution {
public:
    ListNode*  merge(ListNode *h1,ListNode *h2) {
        ListNode *head = nullptr;
        if(h1->val<h2->val){
            head = h1;
            h1=h1->next;
        }
        else{
            head = h2;
            h2=h2->next;
        }
        ListNode *rear = head;
        while(h1&&h2){
            if(h1->val<h2->val){
                rear->next=h1;
                h1=h1->next;
            }
            else{
                rear->next=h2;
                h2=h2->next;
            }
            rear=rear->next;
        }
        if(h1)rear->next=h1;
        if(h2)rear->next=h2;
        return head;
    }
    void two_sort(ListNode * head){
        if(!head->next) return;
        int t=head->val;
        if(t>head->next->val){
            head->val=head->next->val;
            head->next->val=t;
        }
    }
    ListNode* sortList(ListNode* head) {
        if(!head||!head->next) return head;
        if(!head->next->next){
            two_sort(head);
            return head;
        }
        vector<ListNode*> lists;
        ListNode* p=head;
        ListNode* q=head;
        while(p){
            lists.push_back(p);
            q=p->next;
            if(q){
                p=q->next;
                q->next=nullptr;//断链
            }
            else
                p=nullptr;
            
        }
        for(auto l:lists){
            two_sort(l);
        }
        int i=0,j=1;
        while(j<lists.size()){
            p=merge(lists[i],lists[j]);
            lists.push_back(p);
            i+=2;j+=2;
        }
        return p;
    }
};

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python代码实现2024年刘谦春晚魔术

import randomdef main():# 扑克牌随机抽取4张牌playingCards [A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K]cardTackA []for i in range(4):k random.choice(playingCards)cardTackA.append(k)# 将抽取的4张牌随机打乱cnt 0while cnt < 100:random.shuffle(cardTackA)cnt …

中国AIGC技术与应用,发展峰会来啦!

随着技术的快速发展&#xff0c;AIGC正高歌猛进&#xff0c;已经成为推动创新、重塑行业边界的关键力量。AIGC技术利用人工智能算法&#xff0c;如自然语言处理&#xff08;NLP&#xff09;和深度学习模型&#xff0c;自动化地生成文字、图片、视频和音频等内容&#xff0c;这些…

Java对象内存图和垃圾回收

多个对象的内存图 两个变量指向同一个对象内存图 垃圾回收 ⚫ 注意&#xff1a;当堆内存中的 类对象 或 数组对象 &#xff0c;没有被任何变量引用&#xff08;指向&#xff09;时&#xff0c;就会被判定为内存中的 “垃圾”。 ⚫ Java存在自动垃圾回收器&#xff0c;会定…

RF 框架实现企业级 UI 自动化测试

RobotFramework 框架可以作为公司要做自动化 但是又不会代码的一种临时和紧急情况的替代方案&#xff0c;上手简单。 前言 现在大家去找工作&#xff0c;反馈回来的基本上自动化测试都是刚需&#xff01;没有自动化测试技能&#xff0c;纯手工测试基本没有什么市场。 但是很多…

ChatGPT在数据分析岗位了解阶段的应用

ChatGPT在数据分析岗位了解阶段的应用 ​ 1.1 数据分析师的职责与技能要求 ​ 如果想成为数据分析师&#xff0c;首先要了解这个岗位的具体职责和技能要求。这个问题可以直接询问ChatGPT&#xff1a; ​ ChatGPT收到上述内容后&#xff0c;返回如下结果。 ​ ChatGPT给出的信…

本地配置多个git账户及ll设置

本地配置多个git账户 清除全局配置将命令行&#xff0c;切换到ssh目录生成GitLab和Gitee的公钥、私钥去对应的代码仓库添加 SSH Keys添加私钥ll设置 管理密钥验证仓库配置关于gitgitee.com: Permission denied (publickey) 清除全局配置 此步骤可以不做&#xff0c;经测试不影…

mysql优化指南之优化篇

二、优化 现在的理解数据库优化有四个维度&#xff0c;分别是&#xff1a; 硬件升级、系统配置、表结构设计、SQL语句及索引。 那优化的成本和效果分别如下&#xff1a; 优化成本&#xff1a;硬件升级>系统配置>表结构设计>SQL语句及索引。 优化效果&#xff1a;…

EAP-TLS实验之Ubuntu20.04环境搭建配置(FreeRADIUS3.0)(二)

上篇文章简要介绍了freeradius的搭建及配置&#xff0c;在最后数据库连接阶段还没进行测试验证&#xff0c;今天继续。 修改相关文件 1 radiusd.conf 打开762行注释&#xff08;&#xff04;INCLUDE mods-enabled/sql&#xff09;&#xff1b; 2 sites-available/default …

C#上位机与三菱PLC的通信11---开发自己的通讯工具软件(WPF版)

1、先看颜值 2、开始干 1、创建项目 2、引入前面的通讯库 创建目录将前面生成的通讯库dll文件复制到项目的目录 本项目引入dll文件 3、创建命令基类 RelayCommand.cs代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst…

【EI会议征稿通知】第四届生物医学与生物信息工程国际学术会议(ICBBE 2024)

第四届生物医学与生物信息工程国际学术会议&#xff08;ICBBE 2024&#xff09; The 4th International Conference on Biomedicine and Bioinformatics Engineering 由河南大学主办&#xff0c;中州实验室、河南大学基础医学院、河南大学郑州校区学术发展部共同承办的第四届生…

docker部署seata1.6.0

docker部署seata1.6.0 Seata 是 阿里巴巴 开源的 分布式事务中间件&#xff0c;解决 微服务 场景下面临的分布式事务问题。需要先搭建seata服务端然后与springcloud的集成以实现分布式事务控制的过程 &#xff0c;项目中只需要在远程调用APi服务的方法上使用注解 GlobalTransa…

npm install 失败,需要node 切换到 对应版本号

npm install 失败 原本node 的版本号是16.9&#xff0c;就会报以上错误 node版本问题了&#xff0c;我切到这个版本&#xff0c;报同样的错。降一下node&#xff08;14.18&#xff09;版本就好了 具体的方法&#xff1a;&#xff08;需要在项目根目录下切换&#xff09; 1. …

动力气象-斜压发展

前言 斜压发展 天气尺度扰动发展通常被称为锋生&#xff0c;强调的是相对涡度在天气尺度系统发展过程中的作用。 具体而言&#xff0c;讨论的是天气尺度扰动增长过程中平均气流的动力学不稳定起到的作用。 7.1静力不稳定性 概念&#xff1a; 如果进入纬向平均流场的小尺度扰…

男性美颜SDK解决方案,专属男性美化新体验

随着科技的发展&#xff0c;美颜技术已广泛应用于摄影、社交、直播等领域&#xff0c;满足了用户对美的追求。然而&#xff0c;传统的美颜算法往往更偏向于女性用户&#xff0c;忽视了男性用户对于自然、真实美的需求。美摄科技针对这一市场痛点&#xff0c;推出了专为男性设计…

ArcgisForJS如何实现添加含图片样式的点要素?

文章目录 0.引言1.加载底图2.获取点要素的坐标3.添加含图片样式的几何要素4.完整实现 0.引言 ArcGIS API for JavaScript 是一个用于在Web和移动应用程序中创建交互式地图和地理空间分析应用的库。本文在ArcGIS For JavaScript中使用Graphic对象来创建包含图片样式的点要素。 …

深入浅出JVM(六)之前端编译过程与语法糖原理

本篇文章将围绕Java中的编译器&#xff0c;深入浅出的解析前端编译的流程、泛型、条件编译、增强for循环、可变长参数、lambda表达式等语法糖原理 编译器与执行引擎 编译器 Java中的编译器不止一种&#xff0c;Java编译器可以分为&#xff1a;前端编译器、即时编译器和提前编…

【鸿蒙 HarmonyOS 4.0】ArkTS开发语言

一、背景 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性&#xff0c;是TS的超集。 二、基本语法 2.1、基本语法介绍 ArkTS的基本组成&#xff0c;资料来自…

查找算法/搜索 | 二分法(python)

Hi&#xff0c;大家好&#xff0c;我是半亩花海。近期在学习算法与数据结构相关知识&#xff0c;纯纯小白&#xff0c;欢迎一起交流呀。打算从算法学起&#xff0c;首先学习查找算法&#xff08;搜索&#xff09;中的二分法&#xff0c;我使用的是 python 语言进行学习。本算法…

【QT-lineEidte动画效果

QT-lineEidte动画效果 一、演示效果二、核心代码三、下载链接 一、演示效果 二、核心代码 #ifndef DynamicUnderlineLineEdit_H #define DynamicUnderlineLineEdit_H#include <QWidget> #include <QLineEdit> #include <QPainter> #include <QPaintEvent…

【学习iOS高质量开发】——协议与分类

文章目录 一、通过委托与数据源协议进行对象间通信1.委托模式2.要点 二、将类的实现代码分散到便于管理的数个分类之中1.如何实现2.要点 三、总是为第三方类的分类名称加前缀1.为什么总是为第三方类的分类名称加前缀2.要点 三、勿在分类中声明属性1.勿在分类中声明属性的原因2.…