当前位置: 首页 > news >正文

【中等】题解力扣21:合并两个有序链表

题目详情

将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

示例 1:
在这里插入图片描述
输入: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
  • l1l2 均按 非递减顺序 排列

解题思路

  1. 迭代法:使用哑节点(dummy node)简化链表操作,避免处理头节点为空的边界情况。
  2. 双指针遍历:同时遍历两个链表,比较当前节点的值:
    • 将较小值的节点链接到新链表。
    • 移动较小值节点所在链表的指针。
  3. 拼接剩余节点:当其中一个链表遍历完成后,将另一个链表的剩余部分直接链接到新链表末尾。
  4. 空间优化:直接复用原链表节点,不创建新节点,空间复杂度为 O(1)

代码实现(Java版)

class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode dummy = new ListNode(0); // 哑节点简化操作ListNode cur = dummy;while (list1 != null && list2 != null) {if (list1.val <= list2.val) {cur.next = list1;  // 直接复用list1节点list1 = list1.next;} else {cur.next = list2;  // 直接复用list2节点list2 = list2.next;}cur = cur.next;}// 拼接剩余链表cur.next = (list1 != null) ? list1 : list2;return dummy.next;}
}

代码说明

  1. 哑节点(dummy)
  • 初始化一个值为0的节点,其next指向新链表的头节点。
  • 避免处理空链表时的边界条件,使代码更简洁。
  1. 循环比较
  • list1list2均非空时,比较当前节点值。
  • 将较小值节点链接到cur.next,并移动对应链表的指针。
  1. 剩余链表处理
  • 循环结束后,其中一个链表可能还有剩余节点。
  • 通过三元运算符直接将剩余链表链接到新链表末尾。
  1. 返回值
  • dummy.next指向新链表的实际头节点,直接返回即可。

提交详情(执行用时、内存消耗)

在这里插入图片描述

http://www.lryc.cn/news/591652.html

相关文章:

  • mysql——搭建MGR集群
  • Python清屏方法大全 - 终端清屏的几种实现方式
  • 【Android】EditText使用和监听
  • ELN:生物医药科研的数字化引擎——衍因科技引领高效创新
  • H7-TOOL脱机下载后,自动重连RTT,CAN和串口助手三合一模式方法,方便项目测试(2025-07-16)
  • Cocos游戏中UI跟随模型移动,例如人物头上的血条、昵称条等
  • 对话弋途科技:当AI重构汽车大脑,一场车载操作系统的“觉醒年代“开始了
  • 数据呈现:让图表说话,从数字到洞察的可视化艺术
  • springmvc跨域解决方案
  • 移动安全工具-spd_dump
  • FOC算法中SIMULINK一些常用模块(2)-Permanent Magnet Synchronous Machine模块
  • 五分钟学会大数定律【笔记】
  • mysql 字符集不一致导致索引失效问题
  • 以Streamable HTTP方式访问mcp server的过程
  • 【机器学习实战【七】】机器学习特征选定与评估
  • C 语言基础第 08 天:数组与冒泡排序
  • c#笔记之方法的形参列表以及方法重载
  • ubuntu22 npm install electron --save-dev 失败
  • 设计模式是什么呢?
  • JAVA后端开发——success(data) vs toAjax(rows): 何时用
  • .NET Core EFCore零基础快速入门简单使用
  • MyUI1.0全新现代化 Vue.js 组件库框架上线
  • Bell不等式赋能机器学习:微算法科技MLGO一种基于量子纠缠的监督量子分类器训练算法技术
  • mongodb-org-server_8.0.11_amd64.deb 这个文件怎么安装
  • MySQL配置性能优化
  • 3D材质总监的“光影魔法”:用Substance Sampler AI,“擦除”照片中的光影
  • 云原生技术与应用-Kubernetes架构原理与集群环境部署
  • AI驱动,精准计算光伏电站每一小时的发电量
  • Android设备标识符详解:IMEI、ANDROID_ID与OAID
  • 深度解析:基于EasyX的C++黑白棋AI实现 | 算法核心+图形化实战