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

合并两个有序链表,剑指offer,力扣

目录

力扣题目地址:

原题题目:

我们直接看题解吧:

解题方法:

审题目+事例+提示:

解题思路:

具体流程如下:

代码实现:

知识补充:


力扣题目地址:

21. 合并两个有序链表 - 力扣(LeetCode)

难度:简单

今天刷合并两个有序链表,大家有兴趣可以点上看看题目要求,试着做一下

原题题目:

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

我们直接看题解吧:

解题方法:

方法1、递归

方法2、迭代

审题目+事例+提示:

  • 两个链表的节点数目范围是 [0, 50]
  • l1 和 l2 均按 非递减顺序 排列

解题思路:

设L1,L2两个递增链表,合并成一个新的递增链表L3,

循环遍历依次比较两个链表的每一个节点,

若L1>L2,则L3的next指向L1,L1、L3下移一位,L1与L2继续比较,L2同理。

最后遍历结束,其中一个链表会剩下些节点,则直接加到L3即可

具体流程如下:

代码实现:

class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {//虚节点的值为 0,它的值可以设置为任何的数,因为我们根本不需要使用它的值ListNode dum = new ListNode(0), cur = dum;//创建一个虚头结点,同时cur指向dumwhile (list1 != null && list2 != null) {  //while循环结束条件为其中一个链表指向为空if (list1.val < list2.val) {       //当L1<L2,cur.next指向L1cur.next = list1;list1 = list1.next;             //L1下移动一位} else {cur.next = list2;list2 = list2.next;} cur = cur.next;                   //cur下移动一位,比较其中一个链表下一位与另一列 //链表的当前位}//循环结束,判断L1是否指向为空,L1非空则cur.next指向L1,L2反之cur.next = list1 != null ? list1 : list2;return dum.next;}
}
知识补充:

为什么要让cur=dum

链表头节点dum不能乱动,所以用cur暂代dum,让cur动,直接操作dum的话,最后返回就得重找头结点了

类似于浅拷贝后的对象和原对象的修改会相互影响,这本质是因为它们用的同一片内存,相当于一个房间配两把钥匙。但如果不是修改,而是直接赋值,它们是不会相互影响的,相当于换成了新房子的钥匙。 

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

相关文章:

  • Delphi 12 Athens 发布了!
  • 基于Haclon的Blob分析
  • 安卓手机好用的清单软件有哪些?
  • 【追求卓越02】数据结构--链表
  • qt按照不同编码格式读取文字(UTF-16LE,UTF-8,UTF-8BOM,UTF-16BE)
  • R语言和RStudio的下载安装(非常简便舒适)
  • SQL注入漏洞发现和利用,以及SQL注入的防护
  • Jmeter 分布式压测
  • Docker 安装 Apache
  • python变量、常量、数据类型
  • 注册中心CAP架构剖析
  • SVN创建分支
  • Vue 设置v-html中元素样式
  • 连接服务器的脚本
  • ChatGPT/GPT4丨编程助手;AI画图;数据分析;科研/项目实现;提示词工程技巧;论文写作等
  • 35的程序员被辞了可以自己接外包啊?为什么都那么悲观呢?
  • 2020年09月 Scratch(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • SpringBoot面试之SpringBoot自动装配原理
  • JavaScript:监听事件
  • 编写SQL语句,场景:从一张表中查询某字段是逗号分隔的集合值,需要遍历集合内每个值,将其作为条件去查询另一张表,最终返回列表
  • 单链表相关面试题--7.链表的回文结构
  • JUC(Java Util Concurrent)多线程并发库
  • 如何在Linux系统上检测GPU显存和使用情况?
  • Django 入门学习总结5
  • FileNotFoundError: [Errno 2] No such file or directory: ‘patchelf‘: ‘patchelf‘
  • 『new Date 在 IOS 失效 の bug』
  • macos创建xcframework及签名
  • Oracle与Redis Enterprise协同,作为企业缓存解决方案
  • 局部保持投影(Locality preserving projections,LPP)
  • Flutter:引领移动开发新潮流,跨平台应用程序的终极解决方案