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

LeetCode Easy|【21. 合并两个有序链表】

力扣题目链接
状态:拿到本题的第一反应就是使用双指针,分别指向两个链表的开头位置。
随后的思路就是以第一条链表为基准完成插入,并且对于遍历到的每个节点都应该保存其状态。
写了一下代码后发现,我们应该以第一个节点较小的链表作为基准链表。
随后就是开始我们的遍历操作了。

class Solution {
public:ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {// 其中一个链表为空,直接返回另一个链表if (!list1) return list2;if (!list2) return list1;// 确定基准链表ListNode* head = nullptr;if (list1->val <= list2->val) {head = list1;list1 = list1->next;} else {head = list2;list2 = list2->next;}// 当前操作指针指向基准链表的头节点ListNode* current = head;// 使用双指针来遍历两个链表while(list1 && list2) {if (list1->val <= list2->val) {current->next = list1;list1 = list1->next;} else {current->next = list2;list2 = list2->next;}current = current->next;}// 最后链接剩余的链表if (list1) {current->next = list1;} else {current->next = list2;}return head;}
};

当然了还有一种更加简单的思路,其实思路上主体都是一致的,不过代码上会简单很多,但是他会有一个额外的空间来申请一个新的链表。

class Solution {
public:ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {// 创建一个虚拟头节点ListNode dummy(0);ListNode* current = &dummy;// 使用双指针遍历两个链表while (list1 != nullptr && list2 != nullptr) {if (list1->val <= list2->val) {current->next = list1;list1 = list1->next;} else {current->next = list2;list2 = list2->next;}current = current->next;}// 连接剩余的链表if (list1 != nullptr) {current->next = list1;} else {current->next = list2;}return dummy.next;}
};
http://www.lryc.cn/news/413725.html

相关文章:

  • 大模型的架构参数是指定义模型基本结构和组成的各种参数,这些参数对模型的性能、训练效率和泛化能力具有重要影响。以下是对大模型架构参数的详细介绍
  • 人工智能会越来越闭源——对话东北大学副教授王言治 | Open AGI Forum
  • 【前端】(仅思路)如何在前端实现一个fc手柄,将手机作为游戏手柄设备。
  • 三十种未授权访问漏洞合集
  • 【Golang 面试 - 进阶题】每日 3 题(十五)
  • Java中实现文件上传
  • 一种别样的Unicode Python编码方式,完美转换表情和阿拉伯语
  • 小白的晋升之路
  • WebLogic:CVE-2017-10271[XML反序列化]
  • Day13--JavaWeb学习之Servlet后端渲染界面
  • 【MySQL】全面剖析索引失效、回表查询与索引下推
  • 1、爬⾍概述
  • 科普文:微服务之分布式链路追踪SkyWalking单点服务搭建
  • R 语言学习教程,从入门到精通,R的安装与环境的配置(3)
  • 【Pageadmin】之cms漏洞
  • AIGC重塑设施农业:让农事操作更智能,生产效率更高
  • netty应用-手写RPC
  • 私域流量变迁与精细移动化趋势下的AI智能名片小程序源码应用探索
  • 数据结构初阶之排序(下)
  • RGB图像的读取与保存
  • 江协科技51单片机学习- p35 AD/DA模拟/数字采样
  • C#裁剪图像的几种方法总结
  • 被遗忘的哑终端 —— 键盘键位演变的启发者
  • APACHE安装与应用
  • 预警器件控制思考
  • [Day 43] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • 【星海随笔】路由器的启动过程
  • [翻译] Asset Administration Shells
  • linux 常用磁盘维护命令
  • 滑动窗口大总结!!!妈妈以后再也不担心我不会做滑动窗口啦~