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

【力扣每日一题】2023.8.5 合并两个有序链表

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

题目给我们两个有序的链表,要我们保持升序的状态合并它们。

我们可以马上想要把两个链表都遍历一遍,把所有节点的值都放入一个容器里,排序之后再创建一个新的链表。

但是第一,题目是要求拼接链表的节点,而这么做的话有点小犯规。

第二就是没有利用到原本两个链表就是升序的这个特点。

要利用到原本链表升序的特点,我们就需要从左往右依次对两个链表的节点做比较,将较小的节点排到新链表的前面,因为两个链表原本就是升序的,所以这么做,最终合并成的新链表也是升序的。

我们需要定义一个新链表的头,然后进入一个while的循环,循环条件是两个链表至少有一个不为空指针,如果其中一个为空指针,那么新链表的下一个节点直接连上另一个链表,然后退出循环。

如果两个链表都不为空指针,那么我们就需要对比一下他们节点的值,取一个较小的作为新链表的下一个节点。

如此循环,直到最后我们就可以获取到合并两个升序链表后的新升序链表了。

代码:

class Solution {
public:ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {ListNode* res=new ListNode(0,nullptr);ListNode* cur=res;while(list1!=nullptr||list2!=nullptr){if(list1==nullptr){cur->next=list2;break;}else if(list2==nullptr){cur->next=list1;break;}if(list1->val<list2->val){cur->next=list1;cur=cur->next;list1=list1->next;}else{cur->next=list2;cur=cur->next;list2=list2->next;}   }return res->next;}
};

http://www.lryc.cn/news/111076.html

相关文章:

  • QT 驱动条码打印机(没有验证过)
  • Kafka介绍
  • Django使用uwsgi+nginx部署,admin没有样式解决办法
  • 穷举深搜暴搜回溯剪枝(3)
  • Bash 脚本的参数等
  • 从哪些方面学HTML技术? - 易智编译EaseEditing
  • 非阻塞IO
  • Debian如何让multilib和交叉编译工具链共存
  • Flink之JDBC Sink
  • lifecycleScope Unresolved reference
  • P5960 【模板】差分约束算法
  • VSCode---通过ctrl+鼠标滚动改变字体大小
  • 视频监控汇聚平台EasyCVR视频分享页面WebRTC流地址播放不了是什么原因?
  • Libevent开源库的介绍与应用
  • 【LNMP】LNMP
  • uniapp自定义头部导航栏
  • Django实现音乐网站 ⑹
  • dubbo-helloworld示例
  • 电脑ADB连接手机的方式通过网络无法adb连接手机的问题(已解决)
  • 79 | Python数据分析篇 —— Pandas中groupby聚合操作和透视表基础
  • iOS 搭建组件化私有库
  • 迅为全国产龙芯3A5000电脑运行统信UOS、银河麒麟、loongnix系统
  • 枫叶时代:打造中国特色的传统文化IP
  • 一条sql语句在mysql中如何执行(查询+更新)
  • 漫画 | TCP/IP之大明邮差
  • Zookeeper和Nacos的区别
  • O3DE的Pass
  • 如何建立含有逻辑删除字段的唯一索引
  • C语言基础知识点一
  • Python 潮流周刊#14:Lpython 高性能编译器、Python 与 JavaScript 实现互通