news 2026/6/23 6:21:15

合并两个有序链表:双指针迭代法实现(C++)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
合并两个有序链表:双指针迭代法实现(C++)

一、问题描述

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

示例:

  • 输入:l1 = [1,2,4],l2 = [1,3,4],输出:[1,1,2,3,4,4]
  • 输入:l1 = [],l2 = [],输出:[]
  • 输入:l1 = [],l2 = [0],输出:[0]

二、解题思路

1. 递推关系分析

合并两个升序链表的核心是逐个比较两个链表的当前节点值,选择较小的节点接入新链表,直到其中一个链表遍历完毕。

  • 若链表 l1 的当前节点值 ≤ 链表 l2 的当前节点值,将 l1 的当前节点接入新链表,l1 指针后移;
  • 若链表 l2 的当前节点值更小,将 l2 的当前节点接入新链表,l2 指针后移;
  • 当其中一个链表遍历完成后,直接将另一个链表的剩余节点拼接至新链表末尾即可。

为简化头节点为空的边界处理,引入虚拟头节点,避免单独处理首个节点的选择逻辑。

2. 算法选择

  • 递归法:通过递归调用合并剩余节点,代码简洁但会产生递归调用栈,空间复杂度为 O (m+n)(m、n 为两个链表的长度),且递归深度较大时可能出现栈溢出;
  • 双指针迭代法:用指针遍历两个链表并拼接节点,仅使用常数级额外空间,时间复杂度为 O (m+n),空间复杂度为 O (1),是更高效的解法。

三、C++ 代码实现

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 10:43:07

CVPR 2025最佳论文突破:DepthCrafter实现开放世界视频深度序列生成新范式

CVPR 2025最佳论文突破:DepthCrafter实现开放世界视频深度序列生成新范式 【免费下载链接】DepthCrafter DepthCrafter是一款开源工具,能为开放世界视频生成时间一致性强、细节丰富的长深度序列,无需相机姿态或光流等额外信息。助力视频深度估…

作者头像 李华
网站建设 2026/6/22 16:07:06

MEET 2026 | 荣获双奖,AI 开源点亮智能未来

12 月 10 日,以「共生无界,智启未来」为主题的 MEET 2026 智能未来大会在北京举行。承袭 MEET 系列年度行业观察的视角,聚焦以 AI 为代表的智能科技如何穿透产业、学科与场景边界,探讨前沿技术进展与产业落地新动向。大会邀请清华…

作者头像 李华
网站建设 2026/6/23 17:48:32

Wan2.2-T2V-A14B支持自动字幕嵌入吗?多语种翻译生成测试

Wan2.2-T2V-A14B是否支持自动字幕嵌入?多语种翻译能力实测解析 在短视频出海、跨国品牌营销日益频繁的今天,内容本地化的效率直接决定了市场响应速度。一个中国团队制作的广告片,如果需要投放到欧美、东南亚甚至拉美地区,传统流程…

作者头像 李华
网站建设 2026/6/23 11:11:16

Wan2.2-T2V-A14B与Sora的技术路线差异比较

Wan2.2-T2V-A14B与Sora的技术路线差异比较 在生成式AI的浪潮中,文本到视频(Text-to-Video, T2V)正从“能出画面”迈向“可商用”的关键转折点。过去一年里,我们见证了两个极具代表性的技术里程碑:阿里巴巴推出的 Wan2.…

作者头像 李华
网站建设 2026/6/23 1:21:32

Java两种代理模式详解

如有错误欢迎指出 是jdk动态代理是从一步步开始写完特性/维度JDK 动态代理CGLIB 动态代理是否需要接口✅ 需要接口❌ 不需要接口(可代理普通类)代理原理基于反射实现接口方法的代理继承目标类并重写方法,基于 ASM 字节码操作代理类结构生成实…

作者头像 李华
网站建设 2026/6/22 23:57:40

MySQL基础篇——约束和事务

事务与隔离级别比较常考1、MySQL约束约束作用于表中字段,在创建/修改表时使用非空约束,唯一约束,主键约束,默认约束,检查约束,外键约束create table user(id int primary key auto_increment comment 主键,…

作者头像 李华