C++怎么合并两个排序的链表
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,本篇内容主要讲解"C++怎么合并两个排序的链表",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++怎么合并两个排序的链表"吧!题目描述:输入两个递增的链表
千家信息网最后更新 2025年11月15日C++怎么合并两个排序的链表
本篇内容主要讲解"C++怎么合并两个排序的链表",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++怎么合并两个排序的链表"吧!
题目描述:
输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。
数据范围: n为0~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,3,5},{2,4,6}
返回值:
{1,2,3,4,5,6}
解题思路:
本题考察数据结构链表的使用。有两种解法:
遍历比较。建立一个新的头节点head后,用cur指针指向下一节点;然后依次比较两个子链表节点的值大小,谁小先塞谁,塞完就将其指向下一个节点;直到某个子链表遍历完,将cur的next指向没遍历完的那个链表当前的节点。
递归。从pHead1和pHead2的头节点开始比较,谁小就返回谁,然后其下一个指向,指向Merge函数的结果,Merge输入的两个链表为小的一方的next和大的一方的头节点,也就是用下一个值和它继续比谁更小;依次类推,递归中断的标志是有其中一个子链表指向nullptr,返回另一方即可。
测试代码:
解法一,遍历:
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { ListNode *head=new ListNode(-1); ListNode *cur=head; while(pHead1&&pHead2) { if(pHead1->val<=pHead2->val) { cur->next=pHead1; pHead1=pHead1->next; } else{ cur->next=pHead2; pHead2=pHead2->next; } cur=cur->next; } cur->next=pHead1?pHead1:pHead2; return head->next; }};解法二,递归:
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if(!pHead1) return pHead2; if(!pHead2) return pHead1; if(pHead1->val<=pHead2->val) { pHead1->next=Merge(pHead1->next,pHead2); return pHead1; } else{ pHead2->next=Merge(pHead1,pHead2->next); return pHead2; } }};到此,相信大家对"C++怎么合并两个排序的链表"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
节点
两个
指向
输入
排序
C++
一方
解法
递归
复杂
个子
内容
复杂度
数据
过程
学习
输出
实用
更深
也就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
人大网络安全通报制度
国际服务器代理多少钱
中电28所软件开发在什么地方
vb数据库怎么下载
文明网络安全知识竞赛答案
银行数据库重要不
东川区软件开发零售价格
中兴服务器研发中心在哪
秒赞网用什么数据库类型
青田网络安全宣传周
网络安全法,用户实名制
软件开发更新清单模板
安徽互联网展示科技馆设计
奥的斯服务器215状态
我国坚持网络安全
网络安全415工作机制
云服务器 翻墙
四川名锦互联网科技有限公司
云服务器要勾选什么安全组
期货下单软件开发
网络安全投诉入口
数据库应用到哪些技术
湖南软考数据库
东南大学网络安全读研太难了
股票软件开发实例
高中网络安全教育内容
魔兽世界电信服务器选择
和平精英最强服务器的图片
河北康讯网络技术有限公
手机怎么设置服务器dns地址