力扣

技术力扣 力扣 - 剑指 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)

相关推荐

  • 女作家排行榜,当代女作家你最喜欢谁的作品

    技术女作家排行榜,当代女作家你最喜欢谁的作品文无第一武无第二女作家排行榜,说最喜欢谁真的不好说。
    推荐下林奕含吧,前段时间因为XX案件,她的作品《房思琪的初恋乐园》又一次火了起来。
    “我宁愿我是一个媚俗的人,我宁愿无知,

    生活 2021年10月30日
  • kafka新版常用命令有哪些

    技术kafka新版常用命令有哪些这篇文章将为大家详细讲解有关kafka新版常用命令有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1/列出topic的命令为:kafka-topic

    攻略 2021年11月21日
  • HDFS的常用命令操作

    技术HDFS的常用命令操作 HDFS的常用命令操作HDFS的常用命令操作1、基本语法2、常用命令操作#######################1、基本语法bin/hadoop fs 具体命令或bin

    礼包 2021年12月3日
  • 如何进行PyQt5数据库操作

    技术如何进行PyQt5数据库操作如何进行PyQt5数据库操作,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。PyQt5数据库操作一、SQLite数据库1、

    攻略 2021年11月11日
  • 怎么理解PHP7.2忽略父类方法以及Liskov替换原则相关问题

    技术怎么理解PHP7.2忽略父类方法以及Liskov替换原则相关问题这篇文章主要介绍“怎么理解PHP7.2忽略父类方法以及Liskov替换原则相关问题”,在日常操作中,相信很多人在怎么理解PHP7.2忽略父类方法以及Li

    攻略 2021年11月16日
  • C#泛型数组怎么使用

    技术C#泛型数组怎么使用本篇内容介绍了“C#泛型数组怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C# 泛型和数

    攻略 2021年12月2日