王平莹 发表于 2025-6-7 07:04:36

可视化图解算法06:合并两个有序(排序)的链表

1. 题目

描述

输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。
数据范围:10000≤n≤1000,−1000≤节点值≤1000
要求:空间复杂度 O(1),时间复杂度 O(n)
如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图所示:

或输入{-1,2,4},{1,3,4}时,合并后的链表为{-1,1,2,3,4,4},所以对应的输出为{-1,1,2,3,4,4},转换过程如下图所示:

示例1

输入:
{1,3,5},{2,4,6}返回值:
{1,2,3,4,5,6}示例2

输入:
{},{}返回值:
{}示例3

输入:
{-1,2,4},{1,3,4}返回值:
{-1,1,2,3,4,4}2. 解题思路

假如要合并的两个链表分别为: 1→3→5与 2→4→6,对他们两个链表合并,合并之后的链表为: 1→2→3→4→5→6。结构如下图所示。

第一步:定义临时虚拟头节点与指针变量。指针变量有3个,cur用于操作的链表,h1用于链表1节点值的对比,h2用于链表2节点值的对比。

第二步:循环合并两个链表。


首先比较h1与h2指向节点的值,这时1

施婉秀 发表于 2025-12-11 18:40:06

谢谢分享,试用一下

倘伟 发表于 2026-1-2 09:17:41

谢谢分享,辛苦了

蒙飘 发表于 2026-1-2 23:53:08

东西不错很实用谢谢分享

褥师此 发表于 2026-1-4 18:27:01

分享、互助 让互联网精神温暖你我

账暴 发表于 2026-1-18 00:27:17

谢谢楼主提供!

晌集涟 发表于 2026-1-18 19:47:39

很好很强大我过来先占个楼 待编辑

啖曼烟 发表于 2026-1-21 10:38:36

懂技术并乐意极积无私分享的人越来越少。珍惜

秤陷曲 发表于 2026-1-23 04:47:13

谢谢分享,试用一下

笃迩讦 发表于 2026-1-23 19:31:44

这个有用。

钦娅芬 发表于 2026-1-24 12:26:03

很好很强大我过来先占个楼 待编辑

觐有 发表于 2026-1-25 05:40:47

收藏一下   不知道什么时候能用到

啤愿 发表于 2026-1-25 10:28:40

分享、互助 让互联网精神温暖你我

铵滔 发表于 2026-1-25 12:37:43

这个好,看起来很实用

东郭欣然 发表于 2026-1-26 08:42:42

这个好,看起来很实用

缄戈 发表于 2026-1-29 05:14:45

过来提前占个楼

佟棠华 发表于 2026-2-2 12:32:16

感谢分享,学习下。

旱由 发表于 2026-2-3 08:44:17

懂技术并乐意极积无私分享的人越来越少。珍惜

颓哀 发表于 2026-2-5 11:27:17

收藏一下   不知道什么时候能用到

郗燕岚 发表于 2026-2-6 04:53:52

鼓励转贴优秀软件安全工具和文档!
页: [1] 2
查看完整版本: 可视化图解算法06:合并两个有序(排序)的链表