21. 合并两个有序链表(简单系列)

news2025/5/25 17:42:40

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
在这里插入图片描述
输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]
示例 2:

输入:l1 = [], l2 = []
输出:[]
示例 3:

输入:l1 = [], l2 = [0]
输出:[0]

提示:

两个链表的节点数目范围是 [0, 50]
-100 <= Node.val <= 100
l1 和 l2 均按 非递减顺序 排列

第一种:

public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
    ListNode prehead = new ListNode(0);  // 创建一个虚拟头节点
    ListNode pre = prehead;  // 用来记录当前节点的前一个节点

    // 当两个链表都不为空时进行循环比较
    while (list1 != null && list2 != null) {
        if (list1.val <= list2.val) {  // 如果list1的值小于等于list2的值
            pre.next = list1;  // 将pre的下一个节点指向list1
            list1 = list1.next;  // 将list1指向下一个节点
        } else {  // 如果list2的值小于list1的值
            pre.next = list2;  // 将pre的下一个节点指向list2
            list2 = list2.next;  // 将list2指向下一个节点
        }
        pre = pre.next;  // 将pre指向当前节点
    }

    // 将剩余未比较的链表部分连接到合并后的链表的尾部
    pre.next = list1 == null ? list2 : list1;

    return prehead.next;  // 返回合并后的链表的头节点
}

第二种:递归

public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
  //如果list1为空,则返回 list2。
   if(list1==null)
    return list2;
    //如果 list2 为空,则返回list1。
    if(list2==null)
    return list1;
//如果list1的值小于等于list2的值,则将 list1.next 指向递归调用 mergeTwoLists(list1.next, list2)的结果,并返回 list1
    if(list1.val <= list2.val){
        list1.next = mergeTwoLists(list1.next,list2);
        return list1;
    }else{
        list2.next = mergeTwoLists(list1,list2.next);
        return list2;
    }
  }  

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

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

相关文章

牛客python练习2

1 解析&#xff1a;赋值操作&#xff08;aXX,ba&#xff09;&#xff0c;a&#xff0c;b指向同一内存空间。当a,b是不可变类型时&#xff0c;a变&#xff0c;a 值变&#xff0c;id变&#xff0c;但是b不变&#xff0c;b的id也不变&#xff1b;当a,b是可变类型时&#xff0c;a变…

中国AIGC产业全景图;设计+AIGC的工业化生产实践;大模型技术应用创新大赛;LangChain+向量数据库的LLM产品应用课程 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 艾瑞咨询8月最新报告&#xff0c;看透2023年中国AIGC产业全景 ShowMeAI知识星球资源编码&#xff1a;R178 艾瑞咨询在8月份最新发布了…

《合成孔径雷达成像算法与实现》Figure3.13——匹配滤波器的三种实现方式

clc clear close all% 参数设置 TBP 80; % 时间带宽积 T 10e-6; % 脉冲持续时间 N_ZD 60; % 零频点位于中点右侧的距离&#xff0c;P58% 参数计算 B TBP/T; …

windows Etcd的安装与使用

一、简介 etcd是一个分布式一致性键值存储&#xff0c;其主要用于分布式系统的共享配置和服务发现。 etcd由Go语言编写 二、下载并安装 1.下载地址&#xff1a; https://github.com/coreos/etcd/releases 解压后的目录如下&#xff1a;其中etcd.exe是服务端&#xff0c;e…

threejs纹理加载三(视频加载)

threejs中除了能把图片作为纹理进行几何体贴图以外&#xff0c;还可以把视频作为纹理进行贴图设置。纹理的类型有很多&#xff0c;我们可以用不同的加载器来加载&#xff0c;而对于视频作为纹理&#xff0c;我们需要用到今天的主角&#xff1a;VideoTexture。我们先看效果&…

安全工程师(安全产品售后)岗位需求-徐庆臣(黑客洗白者)

职位描述 负责网络安全项目中的产品调试和交付&#xff1b; 负责网络安全项目中的技术方案编写&#xff1b; 负责客户的安全应急和售后驻场。 职位要求 具备扎实的计算机与网络原理&#xff1b; 熟悉各类网络与安全设备&#xff08;路由、交换、防火墙、VPN、漏洞扫描&#…

玩转科技|了解AI平台桌面客户端—ChatBox

目录 前言 特性 ​编辑 为什么需要 ChatBox&#xff1f; ChatGPT Plus 平替&#xff1f; 下载 支持系统 功能图 使用教程 ​感受 展示 前言 今天小编又来了&#xff0c;推荐给大家一款开源的OpenAI API桌面客户端ChatBox&#xff0c;它支持 Windows、Mac 和 Linux。…

数据库导出工具

之前根据数据库升级需求&#xff0c;需要导出旧版本数据&#xff08;sqlserver 6.5&#xff09;&#xff0c;利用c# winfrom写了一个小工具&#xff0c;导出数据。 →→→→→多了不说&#xff0c;少了不唠。进入正题→→→→ 连接数据库&#xff1a;输入数据库信息 连接成功…

渗透测试漏洞原理之---【SQL注入】

文章目录 1、SQL注入原理1.1、SQL注入原理1.2、SQL注入危害1.3、SQL注入分类1.4、SQL注入漏洞挖掘1.4.1、注入点判断1.4.2、主要关注的问题1.4.3、sql-lib靶场第一关注入点 1.5、知识补充 2、SQL注入基本手法2.1、联合查询判断注入类型判断列数判断显示位数据库中的敏感信息获取…

木马病毒分析

一、病毒简介 这款木马从恶意网址下载东西&#xff0c;然后修改本地文件&#xff1b; SHA256:4354970ccc7cd6bb16318f132c34f6a1b3d5c2ea7ff53e1c9271905527f2db07 MD5:56b2c3810dba2e939a8bb9fa36d3cf96 SHA1:99ee31cd4b0d6a4b62779da36e0eeecdd80589fc 二、行为分析 首…

Golang GORM 单表删除delete

删除只有一个操作&#xff0c;delete。也是先找到再去删除。 可以删除单条记录&#xff0c;也可以删除多条记录。 var s Studentdb.Debug().Delete(&s, "age ?", 100)fmt.Println(s)[15.878ms] [rows:1] DELETE FROM student WHERE age 100var s Studentdb.De…

Unity中的Unistorm3.0天气系统笔记

Unistorm是Unity中的一个天气系统&#xff0c;它功能强大&#xff0c;效果优美。本文所述UniStorm为3.0版本&#xff0c;仅用于学习之用。 一、如何设置【白天】、【黑夜】和【天气类型】&#xff1f; 在Running模式下&#xff0c;按下Esc按键&#xff0c;会【弹出】或者【隐…

Python所有方向的学习路线图,萌新少走弯路!!

在放学习路线之前&#xff0c;我先来讲一下这个学习路线图有什么作用&#xff0c;避免有些新手看得云里雾里的。 学习路线图上面写的是某个方向建议学习和掌握的知识点汇总&#xff0c;举个例子&#xff0c;如果你要学习爬虫&#xff0c;那么你就去学Python爬虫学习路线图上面的…

word文档怎么压缩大小?文件压缩方法分享

Word文档是工作和学习中常用的格式&#xff0c;有时候在编辑外后发现文档体积太大了&#xff0c;想要分享或者上传到平台都不行&#xff0c;今天就给大家总结了几个Word文档压缩方法&#xff0c;轻松帮助大家解决Word文档过大的问题&#xff01; 一、压缩Word中的图片 通常情况…

Linux 下 Java Socket 编程报 java.net.Exception:Permission denied (权限不足)

本人用Linux部署springboot项目时遇见这个错误&#xff0c;原因很简单&#xff0c;就是端口号没有选对。 在linux系统中&#xff0c;端口号再1024以下的需要root权限&#xff0c;只要把端口改成大于1024的就可以了&#xff0c;但避开一些软件的默认端口&#xff0c;如Tomcat的8…

Mybatis的综合案例-学生信息查询系统 用于校验是否真正学习掌握了动态SQL

Mybatis的综合案例-学生信息查询系统 需求一&#xff1a;当用户输入的学生姓名不为空&#xff0c;则只根据学生信息进行查询; 当用户输入的学生姓名为空&#xff0c;且专业不为空&#xff0c;那么就根据学生专业进行学生的查询 需求二&#xff1a;查询所有id值小于5的学生信息…

【C++】右值引用,移动语义,完美转发

目录 右值引用移动语义拷贝构造与移动构造 万能引用与完美转发 右值引用 左值&#xff1a;可以出现在赋值符号的左边和右边&#xff0c;左值可以取地址。 右值&#xff1a;右值可以出现在赋值符号右边&#xff0c;不能出现在左边&#xff0c;右值不能取地址。 左值/右值引用就…

python+django+协同过滤算法-基于爬虫的个性化书籍推荐系统(包含报告+源码+开题)

为了提高个性化书籍推荐信息管理的效率&#xff1b;充分利用现有资源&#xff1b;减少不必要的人力、物力和财政支出来实现管理人员更充分掌握个性化书籍推荐信息的管理&#xff1b;开发设计专用系统--基于爬虫的个性化书籍推荐系统来进行管理个性化书籍推荐信息&#xff0c;以…

Qt XML文件解析 QDomDocument

QtXml模块提供了一个读写XML文件的流&#xff0c;解析方法包含DOM和SAX,两者的区别是什么呢&#xff1f; DOM&#xff08;Document Object Model&#xff09;&#xff1a;将XML文件保存为树的形式&#xff0c;操作简单&#xff0c;便于访问。 SAX&#xff08;Simple API for …

桥梁安全监测方法和内容是什么?

桥梁安全监测方法和内容是什么?桥梁监测是保障桥梁安全和稳定的重要手段。随着科技的进步&#xff0c;桥梁监测技术和设备不断完善&#xff0c;监测内容也越来越全面。本文万宾科技小编将为大家介绍桥梁安全监测的方法和内容&#xff0c;以期帮助大家更好地了解这一领域。 桥梁…