合并两个有序链表(java)

news2024/11/29 10:37:58

leetcode 21题:合并两个有序链表

  • 题目描述
  • 解题思路:
  • 链表的其它题型。

题目描述

leetcode21题:合并两个有序链表

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

解题思路:

两个链表是有序的,那我们用两个指针分别卡住两个链表,进行大小比较,
然后再借助一个辅助链表进行大小串联起来,最后返回这个辅助链表就可以了。代码很简单,直接看代码吧。

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
    	//如果有一个是null  直接返回另外一个就行了,无论另外一个是不是null
        if(list1 == null){
            return list2;
        }
        if(list2 == null){
            return list1;
        }
        //两个指针去遍历两个链表
        ListNode p1 = list1;
        ListNode p2 = list2;
        //辅助链表
        ListNode temp = new ListNode(-1);
        ListNode p = temp;
        while(p1 != null && p2 != null){
            if(p1.val > p2.val){
                p.next = p2;
                p2 = p2.next;
            }else{
                p.next = p1;
                p1 = p1.next;
            }
            p = p.next;
        }

    	//经过上面的循环,两个链表肯定有一个走到头了,还有一个没连完,因此下面两个判断只会走其中一个。
        if(p1 != null){
            p.next = p1;
        }
        if(p2 != null){
            p.next = p2;
        }
      //最后返回
        return temp.next;
    }
}

链表的其它题型。

leetcode–环形链表.找到入环节点(java)

LeetCode:相交链表(java)

单链表-快慢指针法来确定链表中间位置.

判断链表是否是回文结构-采用堆栈和逆序的不同方式来实现(java)

链表专题:将一个链表按给定值分成小于等于和大于三个部分

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

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

相关文章

IO多路转接

目录 一、select 1.1 select初识 1.2 select函数 1.3 scoket就绪条件 1.4 select基本工作流程 1.5 select服务器 1.6 select的优点 1.7 select的缺点 1.8 select的适用场景 二、poll 2.1 poll函数 2.2 poll服务器 2.3 poll的优点 && 缺点 三、epoll 3.1…

设备快线客户端软件V1.0用户手册

1.前言欢迎使用设备快线客户端软件产品。设备快线客户端软件简称DYClient,DYClient客户端是东用科技有限公司推出的一款用于远程维护的控制软件,主要为客户远程访问现场终端设备提供便捷的接入服务,并且通过DYClient客户端软件用户可以非常方便快捷的访问…

ChatGPT和软件测试实践与思考

前言 关于最近大火的ChatGPT相信各位也听过不同渠道听说过他的厉害,目前发展趋势比较火热,科技公司都有在考虑怎么使用ChatGPT进行提高研发效率以及办公效率,最近我所在的公司也有在要求大家使用ChatGPT进行改善工作效率,所以引发…

支持导入 Eolink 插件,别小看这个开源 API 管理工具了

Postcat 有多达 30 款支持数据迁移、主题、API 安全等方面的插件。 导入 Eolink 插件。 使用 导入功能有多个入口,你可以在 API 分组处点击加号导入 API: 也可以换种方式,在首页里导入Eolink 如果你日常会用到 api 管理工具的话&#xff0c…

【九章斩题录】C/C++:二维数组中的查找(JZ4)

精品题解 👉 《九章刷题录》 📜 目录: 「 法一 」暴力美学 「 法二 」十字分割法 「 法三 」逐行二分 JZ4 - 二维数组中的查找 📚 题目描述:在一个二维数组 array 中(每个一维数组的长度相同&#xff…

[时间同步] vscode chatGPT提供的程序打包封装成api解决方案怎么样

背景 在完成gnss时间同步程序大部分需求串口配置、串口数据中找出推荐定位信息RMC解析UTC时间以及UTC时间更新系统时间等功能后,有个需求比较特别,需要客户来操作。当车辆在地库场景待时间过久后重新回到地面,一直在自走的系统时间与又定位好…

Three.js--》探索Three.js:学习和就业的完整指南

目录 three.js的学习建议 WebGL前端工程师工作待遇相关问题 本篇文章主要给大家介绍一下如何学习Web3D可视化,具体说就是怎么学习WebGL、Three.js、3D建模等。 three.js的学习建议 在过去互联网是人联网的时代,开发人和人之间的联系的Web应用&#x…

MoveIt2中使用trac_ik

文章目录 1.下载trac_ik的源码2.安装 NLopt library3.编译源码4.使用 在ros1moveit1中,使用trac_ik是很简单的一件事情:【TRAC-IK Kinematics Solver】 但是在Ros2中,无论MoveIt2也好,还是trac_ik也好,都没有提供标准的…

如何编写快速高效的SQL查询(三)——高性能索引策略与样例

是时候开始讨论使用索引了!正确地创建和使用索引是实现高性能查询的基础,现在我们一起来看看如何真正地发挥这些索引的优势。 高效地选择和使用索引有很多种方式,其中有些是针对特殊案例的优化方法,有些则是针对特定行为的优化。…

Redis7实战加面试题-高阶篇(Redis线程与IO多路复用,BigKey,缓存双写)

Redis线程 面试题:Redis为什么选择单线程? 这种问法其实并不严谨,为啥这么说呢?Redis的版本很多3.x、4.x、6.x,版本不同架构也是不同的,不限定版本问是否单线程也不太严谨。 1 版本3.x ,最早版本,也就是…

高压放大器在3D打印中的应用

随着3D打印技术的快速发展,高压放大器在3D打印中的应用越来越受到人们的关注。高压放大器在3D打印中扮演着非常重要的角色,可以提高3D打印的效率和精度,从而实现更高的打印质量。本文将详细介绍高压放大器在3D打印中的应用及其原理。 高压放…

SAP 从入门到放弃系列之安全库存

概念 安全库存的主要目的是以一定数量的库存或时间的作为缓冲区间,以应对供需之间波动的影响。SAP ERP 系统提供两种类型的安全库存:静态安全库存和动态安全库存(即安全天数供应)。 静态安全库…

《程序员面试金典(第6版)》面试题 02.08. 环路检测(哈希法,双指针,检测链表是否有环)

题目描述 给定一个链表,如果它是有环链表,实现一个算法返回环路的开头节点。若环不存在,请返回 null。 题目传送门:面试题 02.08. 环路检测 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链…

操作系统第一章练习题

目录 问答题 选择题 填空题 判断题 问答题 1、设计现代OS的主要目标是什么? 答:设计现代OS的主要目标是:方便性、有效性、可扩充性、开放性 2、OS的作用可表现在哪几个方面? 答:(1)从一…

每个软件测试人员必须具备的12大技能

作者 | Kiran Beladiya 赛希翻译组 译 作为一名软件测试员,掌握一些技术技能是非常必要的,这可以使应用程序变得更好。让我们来看看对任何软件测试员来说必不可少的技能。 没有人能成为这样的软件测试员。要获得这个职业,每个测试人员都必…

公文写作技巧:作风建设类排比句40例

1.面对突发任务时,是主动请缨还是被动服从;遇到棘手问题时,是迎难而上还是推诿回避;在荣誉面前,是正确对待还是邀功请赏;汇报工作时,是真实客观还是弄虚作假。 2.不是敷衍了事图轻松&#xff0…

Spring、SpringMVC

文章目录 Spring一、Spring概述二、Spring快速入门1. Spring开发步骤2. Spring配置文件2.1 Bean标签基本2.2 Bean标签范围2.3 Bean生命周期2.4 Bean实例化三种方式 3. Bean的依赖注入3.1 Bean依赖注入概念3.2 Bean依赖注入方式3.3 Bean的依赖注入的数据类型3.4 引入其他配置文件…

Visual Studio 2022使用CMake+MinGW+Clang+LLDB作为开发环境

笔者前面写了两篇关于Visual Studio 2022使用MinGW的博文:《Visual Studio 2022使用MinGW来编译调试C/C程序》、《Visual Studio 2022 CMakeMinGWGDB 调试目标程序》,这两篇博文都是介绍的是GCCGDB的编译与调试,本文笔者介绍的则是ClangLLDB的…

微服务框架 01SOA和传统服务与微服务的差别

SOA思想 1.SOA思想介绍 面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的&#xff0c…

20行代码来爬取某某云的榜单音乐

今天来爬爬音乐,一丝丝的无聊 前期准备 软件环境 Python3.8pycharm 模块 requests、re、os 三个 其中requests是第三方模块需要手动安装一下 re、os都是内置模块,不需要安装 浏览器开发者工具 咱们需要学会如何使用开发者工具。 对此很多小伙伴都…