力扣

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

相关推荐

  • 离职怎么写,工作不干了辞职报告怎么写

    技术离职怎么写,工作不干了辞职报告怎么写尊敬的领导离职怎么写:  我很遗憾自己在这个时候向公司正式提出辞职申请。  来到公司也已经快两年了,在这近两年里,得到了公司各位同事的多方帮助,我非常感谢公司各位同事。正是在这里我

    生活 2021年10月31日
  • [源码解析] PyTorch 分布式(9) ----

    技术[源码解析] PyTorch 分布式(9) ---- [源码解析] PyTorch 分布式(9) ----- DistributedDataParallel 之初始化前文我们对DDP的一些支撑模块已

    礼包 2021年11月23日
  • 5肖臻区块链听课笔记

    技术5肖臻区块链听课笔记 5肖臻区块链_听课笔记去中心化升级小部分未升级,产生协议分叉,协议升级,新旧互相不合法,产生hard fork,只要旧的不更新,分叉一直有soft fork临时的,旧结点只能去

    礼包 2021年12月10日
  • mysql 发生系统错误1067(mysql数据库1067错误是怎么回事)

    技术mysql出现服务1067错误怎么办这篇文章将为大家详细讲解有关mysql出现服务1067错误怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 my

    攻略 2021年12月22日
  • HTML5 Flash视频flv播放器有什么功能

    技术HTML5 Flash视频flv播放器有什么功能这篇文章主要介绍“HTML5 Flash视频flv播放器有什么功能”,在日常操作中,相信很多人在HTML5 Flash视频flv播放器有什么功能问题上存在疑惑,小编查阅

    攻略 2021年11月12日
  • JAVA虚拟机的几个命令行参数是什么

    技术JAVA虚拟机的几个命令行参数是什么这篇文章将为大家详细讲解有关JAVA虚拟机的几个命令行参数是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

    攻略 2021年12月2日