力扣

技术力扣 力扣 - 剑指 Offer 25. 合并两个排序的链表题目
剑指 Offer 25. 合并两个排序的链表
思路1其实就是归并排序中将两个数组合并成一个有序数组
因为两个链表的元素已经是递增了(

武力剑指的是提议25。合并两个排序的链表。

题目

指剑要约25。合并两个排序的链表。

思路1

事实上,合并和排序是将两个数字组合成一个有序的数组。

由于两个链表的元素已经是递增了(必要条件),我们可以遍历两个链表,判断两个节点之间的大小关系,然后交替向前移动,合并成一个新的链表。

因为合并后需要返回一个新的链表,无法判断l1和l2链表的值,所以可以创建一个伪头节点,相当于标识这个链表,这样最终的结果就是伪头节点的dummy.next。

代码

解决方案类{

公共列表节点合并列表(列表节点l1,列表节点L2){ 0

//创建虚拟头节点

ListNode dummy=new ListNode(-1);

ListNode temp=dummy

//是合并排序中两个数字组合成一个有序数组。

//确保两个链接列表都有效且不为空。

//如何确定合并的大小,请注意这里要重新创建节点。

while (l1!=null l2!=null){ 0

if(L1 . val L2 . val){ 0

temp . next=new ListNode(L1 . val);

temp=temp.next

l1=l1.next

} else {

temp . next=new ListNode(L2 . val);

temp=temp.next

l2=l2.next

}

}

//判断是否已经遍历了两个链表。

while (l1!=null){ 0

temp . next=new ListNode(L1 . val);

temp=temp.next

l1=l1.next

}

while (l2!=null){ 0

temp . next=new ListNode(L2 . val);

temp=temp.next

l2=l2.next

}

//答案是虚拟头节点的下一个节点。

返回dummy.next

}

}

复杂度分析

复杂度:\(O(M ^ N)\),M和N分别是l1和l2链表的长度。

空间复杂度:\ O(1)\)

我走得很慢,但我从不后退!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/103397.html

(0)

相关推荐

  • Disruptor中锁对性能有什么影响

    技术Disruptor中锁对性能有什么影响本篇文章给大家分享的是有关Disruptor中锁对性能有什么影响,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Di

    攻略 2021年10月21日
  • kafka的并发性能怎么测试(基于kafka的延迟消息队列)

    技术Apache Pulsar 与 Kafka 延迟性比较的测试过程是怎么样的本篇文章为大家展示了Apache Pulsar 与 Kafka 延迟性比较的测试过程是怎么样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,

    攻略 2021年12月15日
  • 补充阅读

    技术补充阅读 补充阅读02. 字符串转IntergerInteger.valueOf( "123") 将字符串转成Integer类型
    Integer.parseInt("123") 将字符串转成

    礼包 2021年11月19日
  • 11g RAC和增加日志组大小和数量

    技术11g RAC和增加日志组大小和数量这篇文章给大家介绍11g RAC和增加日志组大小和数量,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。备库关闭日志应用:SQL> select status f

    攻略 2021年11月29日
  • 以读书为话题的作文600字,以我爱阅读经典文学为主题的作文

    技术以读书为话题的作文600字,以我爱阅读经典文学为主题的作文初中一年级的时候以读书为话题的作文600字,曾害过一场病,父亲听从医生劝嘱,让我休学一年。当时为这我还哭过好 一阵子鼻子,休学,就意味着学业上掉队,但我终究没

    生活 2021年10月27日
  • nodejs官方模块是什么

    技术nodejs官方模块是什么这篇文章主要介绍了nodejs官方模块是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 no

    攻略 2021年11月11日