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

合并两个有序链表C++

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

/*** 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* list1, ListNode* list2) {if(list1==nullptr) return list2;if(list2==nullptr) return list1;// 创建哨兵节点作为新链表的头ListNode* dummy = new ListNode(0);ListNode* current = dummy;  // 当前节点指针// 双指针ListNode* l1 = list1;ListNode* l2 = list2;while(l1 && l2){// l1中的值比较小,插值if(l1->val <= l2->val){// 将l1连接到当前链表尾部current->next = l1;l1 = l1->next;}else{// 将l2连接到当前链表尾部current->next = l2;l2 = l2->next;}current = current->next;  // 移动当前指针}if(l1){current->next = l1;}if(l2){current->next = l2;}// 返回哨兵节点的下一个节点(真正的头节点)return dummy->next;}
};

相关文章:

  • Unity3D仿星露谷物语开发67之创建新的NPC
  • 变幻莫测:CoreData 中 Transformable 类型面面俱到(五)
  • 学习笔记丨AR≠VR:透视沉浸式技术的“虚实象限”法则
  • 【Golang面试题】Go语言实现请求频率限制
  • 记录:注册k8s cluster账号
  • NumPy玩转数据科学
  • Apollo:配置中心使用与介绍
  • C++11 Thread-Local Storage:从入门到精通
  • dify本地部署及添加ollama模型(ubuntu24.04)
  • Docker环境部署
  • Javaweb - 2 HTML
  • Windows 10 防火墙 0x8007045b 打不开
  • 数据库期末复习
  • AI是如何思考的,它的过程又是怎样
  • Python中布尔值在函数中的巧妙运用
  • 离线环境jenkins构建前端部署镜像
  • 数据库part2---子查询
  • GO Gin Web框架面试题及参考答案
  • SIMPL论文阅读
  • Deepseek+墨刀,1min快速生成流程图!
  • 秦皇岛网站制作专家/网站名称查询
  • 网站建设课程任务/平台交易网
  • 怎么做农产品垂直网站/投放广告
  • 怎么做局域网网站/免费留电话号码的广告
  • 商城网站的搜索记录代码怎么做/公关
  • 西宁市网站设计企业/成都官网seo厂家