合并两个有序链表(java)

两个有序链表合并为一个有序链表(Java实现) 解题思路: 以升序为例 第一步当然是判空 如果其中一个链表为空 则返回另一个链表即可 要有序 所以需要比较结点大小 创建两个引用指向两个链表 同时分别创建将要合成链表的头和尾 比较两个结点的大小 将较小的结点 cur 放到新的链表尾部 此时要考虑特殊情况 当新链表为空时 要把头和尾都设置成 cur同时 cur 向后移 新链表不为空时将 cur放到尾部 同时 n... 阅读详情

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)

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

Java算法--合并两个有序链表 题目: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 解答: 方法1:递归 class Solution { public ListNode mergeTwoLists(ListNode... 阅读详情

相关推荐

Java有序链表合并

链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个数据元素和指向下一个节点的引用。通过比较节点的值,我们可以逐个将节点接入合并后的链表,最终得到一个有序的链表。我们通过比较两个链表当前节点的值,将较小的节点接入合并后的链表,并将对应的指针后移。本文将介绍如何合并两个有序链表,即将两个有序链表按照顺序合并成一个新的有序链表。该方法接受两个有序链表的头节点作为参数,并返回合并后的有序链表的头节点。通过上述代码,我们成功实现了将两个有序链表合并成一个新的有序链表的功能。首先,我们定义一个链表节点类。

2301_79365003的博客 230

Java链表-合并两个有序链表

定义一个新链表,定义一个新链表的指针tempNode。当合并的两个链表的头节点指针都不指向空时,比较两个链表节点的值,找到里面较小的值的地址。让新链表的指针tempNode下一个节点指向该最小值的地址,然后让该较小值的地址头指针指向下个地址。当一个链表的头指针指向空时,把另一个链表剩下的地址都填到新链表后边。这样链表就合并成功。...

m0_52012606的博客 4420

WINCC8.1工业组态软件安装与授权配置指南

SCADA系统作为工业自动化控制的核心平台,通过实时数据采集与监控实现生产流程可视化。WINCC作为西门子旗舰级组态软件,其8.1版本凭借稳定的运行时环境在汽车制造、流程工业等领域广泛应用。本文从工业控制系统软件安装规范切入,重点解析WINCC8.1与Automation License Manager的协同工作原理,详细说明包括系统环境检查、安装包校验、授权文件配置等关键技术环节。针对工程实施中常见的内存配置不足、授权管理器报错等典型问题,提供经过现场验证的解决方案,特别适用于需要进行产线监控系统升级维护

cqwf95925的博客 1657

合并两个有序链表(Java)

解题思路: 第一步:先设置一个虚拟节点(傀儡节点) 图解: 完整代码如下:

m0_63036262的博客 5659

10-142 6-4 查询厂商“D“生产的PC和便携式电脑的平均价格

分数 10全屏浏览题目切换布局作者 lhm单位 河北农业大学本题目要求编写SQL语句,查询厂商D生产的PC和便携式电脑的平均价格。

dqd66的博客 2748

LTE 中设置voice/data centric的差异

1. 什么是voice centric和data centric Voice centric和data centric的差别在于以语音为中心还是以数据为中心。这里的以某某为中心可不是说说而已。举个栗子,UE一般搜网注册都会按照LUG(LTE->UMTS->GSM)或者LC(LTE->CDMA)的顺序进行,如果UE(未开通VOLTE)注册到LTE时,网络提示不支持语音,比如CSFB。UE就必须disable LTE后回到GU或者CDMA,否则留在不能语音的网络下,UE就会...

alimingh的博客 5234

Java版合并两个有序链表,合并后的链表依然保持顺序

java实现有序链表的合并,并对相同值进行了处理。文章包含思路分析、代码实现和运行结果,欢迎交流

wangye135的博客 1349

ST7102驱动移植与调试实战

本文详细介绍了在君正T40平台上移植和调试ST7102 LCD驱动芯片的实战经验。内容涵盖硬件接口配置、时序参数调整、寄存器初始化序列编写及常见问题解决,重点解析了ST7102单芯片集成显示与触控功能的特性,为嵌入式设备显示驱动开发提供实用指南。

k6l7m8n9的博客 1413

JAVA 将两个有序链表合并为一个有序链表

将两个有序链表合并为一个有序链表 思路: 1.必须保证两个链表为有序链表 2.在两个链表都不为空的条件下,设一个 last=null; (1)如果链表1的值小于等于链表2的值,进行循环,先放链表1的值到新链表result,如果result为空,视为头插,如果不为空,视为尾插,其中要保证last永远为最后一个结点,最后让循环走起来 (2)如果链表2的值小于链表1的值,与(1)中方法相同,只是链表1全换为链表2即可 3.如果链表2为空了,链表1不为空时,把链表1接在last的下一个,之后,可以.

Sundy_sc的专栏 2486

AI工具如何提升产品经理工作效率

AI工具在现代产品管理中扮演着越来越重要的角色,从需求挖掘到原型设计再到交付物制作,AI技术正在重塑产品经理的工作流程。通过自然语言处理(NLP)和机器学习(ML)技术,AI工具能够自动化处理大量重复性任务,如用户访谈转录、竞品分析、原型生成等,显著提升工作效率。以ChatGPT和Notion AI为例,这些工具可以快速生成结构化分析框架和PRD初稿,将传统需要数小时甚至数天的工作压缩到几分钟内完成。在产品设计阶段,工具如Uizard和Galileo AI能够根据文本描述自动生成可交互原型,大幅缩短设计探索

weixin_29194817的博客 242

OpenClaw 在 Docker 容器中的部署实战——零配置启动

本文介绍了OpenClaw在Docker容器中的快速部署方法,对比了本地部署与容器化部署的优势。通过官方镜像和Docker Compose两种方式,5分钟即可完成部署,并详细讲解了配置管理方案(挂载配置文件和环境变量)。文章还提供了飞书集成配置方法,以及生产环境下的日志管理、资源限制、健康检查等优化建议。最后包含常见问题排查指南,帮助开发者快速实现OpenClaw的容器化部署。

刘一说的IT专栏 906

合并两个有序链表 java_合并两个有序链表

合并两个有序链表No more than a platitudeMerge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.Example:Input: 1->2->...

weixin_39565777的博客 142

自定义模型训练——打造专属OpenClaw模型(2026AI版)

本文介绍了OpenClaw自定义模型训练的核心流程,包括框架选择(PyTorch、TensorFlow、HuggingFace和原生OpenClaw框架)、训练环境搭建脚本、以及数据收集系统的设计。数据收集器支持从数据库、API、文件和网络等多种来源获取训练数据,并提供灵活的过滤机制确保数据质量。通过这套系统,开发者可以高效准备训练数据,为后续模型训练打下坚实基础。

博客 877

Java合并两个有序链表,轻松掌握!

你是否曾为如何高效地合并两个有序链表而烦恼?在编程中,链表是一种常见的数据结构,但合并两个有序链表却是一个挑战。今天,我将为你揭示一个简单而高效的解决方案,让你轻松掌握这一技巧!

Q2024107的博客 534

816华为OD机试真题 新系统 - 电池充电时间计算 (Java/Py/C/C++/Js/Go)

816华为OD机试真题 新系统 - 电池充电时间计算 (Java/Py/C/C++/Js/Go)

算法大师! 473

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【Java实现】合并两个有序链表

数据结构,面试必刷合并两个有序链表

威威的博客 1836

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

合并有序链表(Java)

基于两个有序的链表融合成一个新的有序链表,首先了解链表的基本操作: Java实现双向链表结构 (1)思路分析: 既然是两条有序合并为一条,那么肯定要进行比较大小。 那么我们就以第一条有序链表(A)为基础,循环拿另外一条(B)每个元素去比较大小,插入到合适的位置。 如果B的元素小于A最前面的元素,则插入到A的最前面。 如果B从某个元素开始比A的全部元素都大,又因为B是有序链表,这个就简单了,直接把B拼接到A的尾巴即可,无需再一个个比较。 PS: 由于链表有头尾两节点,在内存中属于分散存储,所以设置好头尾下一.

whiteBearClimb的博客 640

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

java两个有序链表合并

                                       java两个有序链表合并  今天做了个算法题,遇到了点问题。和大家分享一下 要求是实现两个链表的合并。这个链表可以自己用类实现,也可以用LinkedList。为了方便访问,我用了后者实现。 看一下代码: package MM; import java.util.LinkedList; public clas...

0bug0warning的博客 400

【Java】剑指Offer——合并两个有序链表

1、思路概述: 首先要明确的是当我们合并完两个有序链表后,新的链表也依旧还是要有序。所以,我们首先要定义两个指针分别对两个链表进行遍历,再定义一个指针从空开始存储两个链表中挑选出来的数字。当一个链表为空时,将剩下的一个链表全部输入即可。 2、代码实现: public void merge(Link<T> link){ Link<T> link1=new Link<&g...

weixin_44836685的博客 376

LeetCode 21. 合并两个有序链表 java

LeetCode 21. 合并两个有序链表 java 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 : 输入:1-&gt;2-&gt;4, 1-&gt;3-&gt;4 输出:1-&gt;1-&gt;2-&gt;3-&gt;4-&gt;4 JAVA 代码: class Solution { public ListNode mergeTw...

lele的专栏 521

力扣练手21 合并两个有序链表 java版

题目描述 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 原代码: /** * Definition for singly-linked list. * public class ListNode { * ...

minyunfei6的博客 312

Java-合并有序链表

题目描述 将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的。 1->2->3 2->3->4->5 合并结果: 1->2->2->3 >3 >4->5 import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solutio.

luzhensmart的专栏 291
上一篇: leetcode--环形链表.找到入环节点(java)
下一篇: 递归--汉诺塔问题(java)
SP_1024
博客等级 码龄8年 86粉丝 295原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值