牛客Top101 JS合并两个排序的列表

news2024/11/20 12:25:38

描述

输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。

数据范围: 0 ≤n≤1000,-1000≤节点值≤1000
要求:空间复杂度 O(1),时间复杂度 O(n)

如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图所示:

                        

 或输入{-1,2,4},{1,3,4}时,合并后的链表为{-1,1,2,3,4,4},所以对应的输出为{-1,1,2,3,4,4},转换过程如下图所示:

                   

 

示例1

输入:

{1,3,5},{2,4,6}

返回值:

{1,2,3,4,5,6}

示例2

输入:

{},{}

返回值:

{}

示例3

输入:

{-1,2,4},{1,3,4}

返回值:

{-1,1,2,3,4,4}

主要思路:

首先需要判断两个链表是否其中一个链表为空,如果为空则直接返回另外一个链表即可(白嫖)。然后初始化表头,如果第一个链表的第一个值小于等于第二个链表的第一个值则表头初始化为第一个链表的第一个值,如果大于则初始化为第二个链表的第一个值,接下来重点:一定要把表头的初始指针的位置保存下来方便后面返回!!!

接下来就是进行合并操作,循环的条件是如果有第一个链表或者第二个链表中的某一个到达链表的尾部则停止,然后这个合并操作就和归并排序的思想一致,这里就不多说了,不懂的小伙伴自己下去复习一下喔~。完整代码如下:

/*function ListNode(x){
    this.val = x;
    this.next = null;
}*/
function Merge(pHead1, pHead2)
{
    // write code here
    let p1,p2=null;
    let pnew=null;
    p1=pHead1;
    p2=pHead2;
    // 判断:如果有一个已经为空了就返回另外一个
    if(p1===null) {
        return p2;
    }
    if(p2===null)
     {
        return p1;
    }
    if(p1.val<=p2.val) {
        pnew=p1;
        p1=p1.next;
    }
    else {
         pnew=p2;
         p2=p2.next;
    } 
    let res=pnew;   
    while(p1!==null&&p2!==null) {
    if(p1.val<=p2.val) {
        pnew.next=p1;
        p1=p1.next;
    }
    else {
        pnew.next=p2;
        p2=p2.next;
    }
        pnew=pnew.next;
    }
    if(p1===null) {
        pnew.next=p2;
    }
    if(p2===null) {
        pnew.next=p1;
    }
    return res;
}

module.exports = {
    Merge : Merge
};

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

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

相关文章

[附源码]计算机毕业设计基于Springboot设备运维平台出入库模块APP

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

java面试强基(17)

ArrayList 与 LinkedList 区别? 是否保证线程安全&#xff1a; ArrayList 和 LinkedList 都是不同步的&#xff0c;也就是不保证线程安全&#xff1b;底层数据结构&#xff1a; ArrayList 底层使用的是 Object 数组&#xff1b;LinkedList 底层使用的是 双向链表 数据结构&a…

Vue(第十七课)AXIOS对JSON数据的增删改查

Vue(第十七课)AXIOS对JSON数据的IDUS Vue(第十六课)JSON-SERVE和POSTMAN技术中对数据的增删改查_星辰镜的博客-CSDN博客 get:获取数据,请求指定的信息,返回实体对象post:向指定资源提交数据(例如表单提交或文件上传)put:更新数据,从客户端向服务器传送的数据取代指定的…

Elasticsearch中的语言分析器-IK分词器

IK分词器是一个中文语言的语言分析器,以下为指定使用“IK分词器”的案例: 在Postman中,向ES服务器发送GET请求: http://192.168.1.108:9200/_analyze 请求体里面的内容为(在请求体里指定要分析的文本): {"text":"测试单词" } 调用上述接口后,其…

(附源码)SSM 汽车停车位共享APP 毕业设计 041534

汽车停车位共享APP 摘 要 随着社会经济的快速发展,我国机动车保有量大幅增加,城市交通问题日益严重。为缓解用户停车难问题,本文设计并实现了APP停车位共享系统.该系统通过错峰停车达到车位利用率最大化.基于现状分析,本文结合实际停车问题,从系统应用流程,系统软硬件设计和系统…

Flink

文章目录1. 概述1.1 Apache Flink1.2 特点1.3 Flink VS Spark Streaming2. 安装与部署2. Flink运行时的组件2.1 作业管理器(JobManager)2.2 任务管理器(TaskManager)2.3 资源管理器(ResourceManager)2.4 分发器&#xff08;Dispatcher)3. 任务提交流程4. Flink API4.1 不用级别…

[附源码]JAVA毕业设计旅游景点展示平台的设计与实现(系统+LW)

[附源码]JAVA毕业设计旅游景点展示平台的设计与实现&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09…

【cocos源码学习】模板示例工程的目录说明

环境说明 硬件&#xff1a;macbook pro 四核Intel Core i7系统&#xff1a;macOS Big Sur 11.4.2、 xcode Version 13.1 、cmake 3.20.5软件&#xff1a;iterm2 Build 3.4.8、zsh 5.8、Android Studio Dolphin | 2021.3.1cocos2d-x v4 &#xff1a; 官方下载压缩包 http://coc…

深度学习 RNN循环神经网络原理与Pytorch正余弦值预测

深度学习 RNN循环神经网络原理与Pytorch正余弦值预测一、前言二、序列模型三、不含序列关联的神经网络四、包含隐藏状态的卷积神经网络五、正余弦预测实战六、参考资料一、前言 前面我们学习了前馈神经网络、卷积神经网络&#xff0c;它们有一个特点&#xff0c;就是每次输出跟…

HTML旅游景点网页作业制作——旅游中国11个页面(HTML+CSS+JavaScript)

&#x1f468;‍&#x1f393;学生HTML静态网页基础水平制作&#x1f469;‍&#x1f393;&#xff0c;页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码&#xff0c;这是一个不错的旅游网页制作&#xff0c;画面精明&#xff0c;排版整洁&#xff0c;内容…

精品基于Javaweb的酒店民宿管理推荐平台SSM

《基于Javaweb的酒店民宿管理推荐平台》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 使用技术&#xff1a; 开发语言&#xff1a;Java 框架&#xff1a;ssm 技术&#xff1a;JSP JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据…

老司机发车了,CountDownLatch:等与不等都在你

哈喽大家好&#xff0c;我是阿Q。 前几天我们把 ReentrantLock的原理 进行了详细的讲解&#xff0c;不熟悉的同学可以翻看前文&#xff0c;今天我们介绍另一种基于 AQS 的同步工具——CountDownLatch。 CountDownLatch 被称为倒计时器&#xff0c;也叫闭锁&#xff0c;是 juc…

[论文精读|顶刊论文]Relational Triple Extraction: One Step is Enough

2022.5.11 &#xff5c;IJCAI-2022&#xff5c;华中科技大学&#xff5c;2022年SOTA&#xff5c; 原文链接 Relational Triple Extraction: One Step is Enough 过去的步骤&#xff1a; 寻找头尾实体的边界位置&#xff08;实体识别&#xff09;将特定令牌串联成三元组&…

[附源码]Python计算机毕业设计Django区域医疗服务监管可视化系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

分享107个小清新,总有一款适合您

PPT链接&#xff1a;https://pan.baidu.com/s/1WqaR_29avEgq46iTSLKfmw?pwd5r81 提取码&#xff1a;5r81 源码下载链接&#xff1a;ppt.rar - 蓝奏云 采集的参数 page_count 1 # 每个栏目开始业务content"text/html; charsetgb2312"base_url "https://sc…

Python可视化招聘信息聚合系统 (附源码)!

前言 基于数据技术的互联网行业招聘信息聚合系统&#xff0c;本系统以Python为核心&#xff0c;依托web展示&#xff0c;所有功能在网页就可以完成操作&#xff0c;爬虫、分析、可视化、互动独立成模块&#xff0c;互通有无。 依托python的丰富库实现&#xff0c;爬虫使用Req…

详解设计模式:备忘录模式

详解设计模式&#xff1a;备忘录模式 备忘录模式&#xff08;Memento Pattern&#xff09;也被称为快照模式&#xff08;Snapshot Pattern&#xff09;、Token 模式&#xff08;Token Pattern&#xff09;&#xff0c;是在 GoF 23 种设计模式中定义了的行为型模式。 备忘录模式…

阿里云存储解决方案,助力轻舟智航“将无人驾驶带进现实”

轻舟智航介绍 轻舟智航是一家以“将无人驾驶带进现实”为使命的自动驾驶通用解决方案公司&#xff0c;依赖双擎战略&#xff0c;一方面主张以高性价比的前装量产方案&#xff0c;致力于打造L4级体验的城市高速NOA方案&#xff0c;满足不同客户不同等级的自动驾驶量产需求。另一…

Lottie 动画导出为 GIF/MP4 以及与 QML 集成演示

获取 Lottie 动画文件 lottiefiles 是一个很好的网站, 从上面可以下载到别人分享的 lottie 动画文件. 我们可以下载到多种格式, 下面分别讲解每个格式的下载和适用情景. 下载 JSON 源文件 这是体积最小的格式, 一般在 10kb ~ 100kb 之间. 考虑到 lottiefiles 的服务器在国外…

锂热电池检测设备 你一定没见过这种检测方式!

项目需求 用户希望纳米Namisoft帮他们设计开发一款系统&#xff0c;要求系统软件安装在PC控制装置上&#xff0c;系统通过使用USB、RS232、LAN通讯接口实现对锂电池测试过程中所用到的仪器&#xff08;内阻测试仪、扫码枪、触摸显示器和电源模块等&#xff09;进行软件控制&…