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

21.合并两个有序链表

在这里插入图片描述

思路

使用哨兵节点简化处理:
创建一个值为 -1 的哨兵节点 l3,它不会出现在最终结果中,但能让我们避免特判空链表或头节点的问题。

双指针比较大小,逐个接入新链表:
每次比较两个链表当前节点的值,将较小的那个接到新链表末尾,然后向前移动对应链表指针。

拼接剩余节点:
当其中一个链表遍历完后,另一个链表中剩下的节点一定是升序的,直接接在新链表后即可。

返回哨兵节点后的第一个节点:
l3.next 即为合并后链表的实际头节点。

题解

 * Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/class Solution {
public:ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {// 创建一个哨兵节点 l3,初始值设为 -1(值无所谓,只是占个位置)// p 是结果链表的当前尾节点,初始指向哨兵节点ListNode l3(-1), *p = &l3;// 双指针分别指向两个链表ListNode* p1 = l1, *p2 = l2;// 只要两个链表都未遍历完,就继续比较while(l1 != nullptr && l2 != nullptr){if(l1->val < l2->val){// 把 l1 当前节点接到结果链表后p->next = l1;// 移动 l1 指针到下一个节点l1 = l1->next;}else{// 把 l2 当前节点接到结果链表后p->next = l2;// 移动 l2 指针到下一个节点l2 = l2->next;}// p 始终指向新链表的尾节点p = p->next;}// 如果 l1 还有剩余,就接到 p 后面if(l1 != nullptr){p->next = l1;}// 如果 l2 还有剩余,就接到 p 后面if(l2 != nullptr){p->next = l2;}// 返回哨兵节点后面第一个有效节点return l3.next;}
};
http://www.dtcms.com/a/264224.html

相关文章:

  • android RecyclerView隐藏整个Item后,该Item还占位留白问题
  • 变幻莫测:CoreData 中 Transformable 类型面面俱到(七)
  • IDE全家桶专用快捷键----------个人独家分享!!
  • 计算机网络(三)传输层TCP
  • 630,百度文心大模型4.5系列开源!真香
  • Spring Boot 启动加载执行链路分析
  • Spring Boot 集成 Dufs 通过 WebDAV 实现文件管理
  • (第二篇)HMTL+CSS+JS-新手小白循序渐进案例入门
  • C++ 网络编程(13) asio多线程模型IOServicePool
  • Y-Combinator推导的Golang描述
  • 复现一个nanoGPT——model.py
  • postman入门篇
  • 用Fiddler中文版抓包工具掌控微服务架构中的接口调试:联合Postman与Charles的高效实践
  • 2.2.4 Linux 系统日志管理
  • (LeetCode 面试经典 150 题) 42. 接雨水 (单调栈)
  • 【C++】std::vector 全面指南
  • Excel 如何从一个大表里,根据姓名查找到对应的手机号?
  • 【1.5 漫画TiDB分布式数据库】
  • python+uniapp基于微信小程序的流浪动物救助领养系统nodejs+java
  • 蓝牙音频传输协议深度解析:A2DP、HFP、AVRCP 对比与面试核心考点
  • Langgraph 学习教程
  • 日事清驾驶舱模式上线:实时数据更新+项目管理+数据可视化,提升决策效率​
  • 5-TF·IDF关键词算法
  • 强化学习系列--从数值出发,解读 DPO 训练背后的偏好优化逻辑
  • Navicat Premium x TiDB 社区体验活动 | 赢 Navicat 正版授权+限量周边+TiDB 社区积分
  • 第8章路由协议,RIP、OSPF、BGP、IS-IS
  • RabbitMQ简单消息监听
  • 基于开源AI大模型AI智能名片S2B2C商城小程序的流量转化与价值沉淀研究
  • linux魔术字定位踩内存总结
  • 振荡电路Multisim电路仿真实验汇总——硬件工程师笔记