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

Leetcode21. 合并两个有序链表

问题描述:

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

示例 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均按非递减顺序排列

上代码,拿去即可运行:

package com.onlyqi.daydayup01.leetcode; import lombok.AllArgsConstructor; import lombok.Data; import java.util.Objects; public class Leetcode21 { public static void main(String[] args) { ListNode head14 = new ListNode(4); ListNode head12 = new ListNode(2, head14); ListNode head11 = new ListNode(1, head12); ListNode head25 = new ListNode(5, null); ListNode head23 = new ListNode(2, head25); ListNode head21 = new ListNode(1, head23); // 1 2 4 // 1 2 5 ListNode head = mergeTwoLists1(head11, head21); while (!Objects.isNull(head)) { System.out.println(head.val); head = head.next; } } public static ListNode mergeTwoLists1(ListNode list1, ListNode list2) { ListNode head = new ListNode(0); // 哑结点 (dummy node),简化代码 ListNode temp = head; // temp 用于遍历新链表 // 循环条件:当两个链表都还有节点时才需要比较 while (list1 != null && list2 != null) { if (list1.val <= list2.val) { temp.next = list1; // 将 list1 当前节点接在 temp 后面 list1 = list1.next; // 只移动 list1 的指针 } else { temp.next = list2; // 将 list2 当前节点接在 temp 后面 list2 = list2.next; // 只移动 list2 的指针 } temp = temp.next; // 移动 temp 指针,准备下一次连接 } // 循环结束后,至少有一个链表已经为空。 // 将剩下的非空链表直接接到结果链表的末尾。 temp.next = (list1 != null) ? list1 : list2; return head.next; // 返回哑结点的下一个节点,即新链表的头节点 } @Data @AllArgsConstructor static class ListNode { int val; ListNode next; public ListNode(int val) { this.val = val; this.next = null; } } }

运行结果:

我要刷300道算法题,第151道。 尽快刷到200,争取每天搞一道 。

http://www.jsqmd.com/news/362571/

相关文章:

  • [技术流] 还在手动复制 1688 商品?浅析如何用 Python+RPA 构建“采集-清洗-上架”全自动化选品闭环
  • 树形DP各类题目的考试
  • 阿里巴巴/1688开户推广代运营服务商深度测评:深圳昊客网络凭什么成为行业标杆? - 专业GEO营销推广
  • 2026新能源/120KW/快充/商用/电动车充电桩优选指南 四大本土品牌解锁全场景补能新体验 - 深度智识库
  • 稀土碳酸盐:工业与环保领域的隐形英雄
  • Java处理时间-java.time
  • 2026四川正规厂房拆除回收公司推荐榜 - 深度智识库
  • 让AI学会“选择性遗忘”:数据脱敏如何守护你的隐私与安全
  • java对象排序
  • Linux文件IO与目录IO编程深度解析:从系统调用到实战应用
  • 2026新能源/120KW/快充/商用/电动车充电桩品牌推荐 本土优质企业解决方案甄选 - 深度智识库
  • 数据结构:双向链表-从原理到实战完整指南 - 详解
  • 3D 重建的终局是开放世界自由 | IDEA 张磊、光影焕像谭平团队发布 3D 场景生成框架 SceneMaker
  • 2026年电线电缆二手回收公司权威推荐:四川变压器回收/四川厂房拆除回收/四川中央空调回收/四川KTV设备回收市场选择指南 - 深度智识库
  • 【GIS实操指南】测量长度与面积的实用技巧
  • Java 多线程开发
  • 永磁同步电机谐波电流调控关键技术研究
  • [UG\NX二次开发] 分享“一键清除高亮工具”的源代码
  • 西南地区变压器回收服务商Top5推荐与选择技巧 - 深度智识库
  • 从心出发,向善而行——北京东慧公益基金会成立大会在京圆满举办
  • 港口岸电装上“智慧之眼”:绝缘监测与故障定位系统,让绿色能源更安全!
  • 百度竞价开户推广代运营推广科普:深圳昊客网络用数字化帮助企业实现增长引擎 - 专业GEO营销推广
  • 运维领域的多智能体可观测平台选型全景对比
  • 官宣升级!Claude Opus 4.6 正式发布,能力全面拉满,一步 API 即刻畅用
  • 当AI陷入信任危机,中国工厂已达成共识
  • 超多JavaScript实用小妙招
  • 为什么很多企业上了 ITSM,却始终停在“初级阶段”
  • 2026年四川电线电缆回收厂家权威推荐:卓航百顺实力与口碑兼具的可靠合作伙伴 - 深度智识库
  • 5个GEO产品优化误区,90%企业都踩过!3家专业服务商推荐
  • 企业加密软件都有哪些?六款值得关注的企业加密软件推荐