后端开发刷题 | 合并两个排序的链表
描述
输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。
数据范围: 0≤n≤1000,−1000≤节点值≤1000
如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图所示:
或输入{-1,2,4},{1,3,4}时,合并后的链表为{-1,1,2,3,4,4},所以对应的输出为{-1,1,2,3,4,4},转换过程如下图所示:
示例1
输入:
{1,3,5},{2,4,6}
返回值:
{1,2,3,4,5,6}
示例2
输入:
{},{}
返回值:
{}
示例3
输入:
{-1,2,4},{1,3,4}
返回值:
{-1,1,2,3,4,4}
思路分析:
方法一:
使用递归来进行求解
- 终止条件:两链表其中一个为空时,返回另一个链表;
- 当前递归内容:若pHead1
.val <=
pHead2.val
将较小的pHead1.next
与merge后的表头连接,即pHead1.next = Merge(
pHead1.next,
pHead2);
pHead2.val
较大时同理; - 每次的返回值:排序好的链表头;
复杂度:O(m+n)
O(m+n)
代码:
import java.util.*;public class Solution {/*** * @param pHead1 ListNode类 * @param pHead2 ListNode类 * @return ListNode类*/public ListNode Merge (ListNode pHead1, ListNode pHead2) {if(pHead1==null){return pHead2;}if(pHead2==null){return pHead1;}if(pHead1.val>pHead2.val){pHead2.next=Merge(pHead1,pHead2.next);return pHead2;}else{pHead1.next=Merge(pHead1.next,pHead2);return pHead1;}}
}
方法二:
空间O(1)的思路:
-
创建一个虚拟结点和一个哨兵结点
-
当pHead1与pHead
2
都不为null
时循环 -
哪个的
val
小哪个赋给虚拟结点的next
,虚拟结点后移。 -
退出循环后,哪个pHead不为空,哪个结点(包括剩下的)给虚拟结点的
next
-
最后返回哨兵结点的
next
代码:
import java.util.*;public class Solution {/*** * @param pHead1 ListNode类 * @param pHead2 ListNode类 * @return ListNode类*/public ListNode Merge (ListNode pHead1, ListNode pHead2) {ListNode dummy=new ListNode(-1);ListNode res=dummy;while(pHead1!=null&&pHead2!=null){if(pHead1.val>pHead2.val){dummy.next=pHead2;pHead2=pHead2.next;dummy=dummy.next;}else if(pHead1.val<=pHead2.val){dummy.next=pHead1;pHead1=pHead1.next;dummy=dummy.next;}}if(pHead1!=null){dummy.next=pHead1;}if(pHead2!=null){dummy.next=pHead2;}return res.next;}
}
相关文章:
![](https://img-blog.csdnimg.cn/img_convert/1af9718eb8d59cd49e98223dc808c6f7.png)
后端开发刷题 | 合并两个排序的链表
描述 输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。 数据范围: 0≤n≤1000,−1000≤节点值≤1000 如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},…...
![](https://www.ngui.cc/images/no-images.jpg)
JAVA_7
JAVA_7 JAVA面向对象编程1. 抽象方法和抽象类 JAVA面向对象编程 1. 抽象方法和抽象类 使用abstract修饰的方法,没有方法体,只有声明。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。包含抽象方法的类就是抽象类。通过…...
![](https://www.ngui.cc/images/no-images.jpg)
最大连续1的个数 III(LeetCode)
题目 给定一个二进制数组 nums 和一个整数 k,如果可以翻转最多 k 个 0 ,则返回 数组中连续 1 的最大个数 。 解题 def longestOnes(nums, k):left 0max_len 0zero_count 0for right in range(len(nums)):# 如果遇到0,统计当前窗口内0的个…...
![](https://www.ngui.cc/images/no-images.jpg)
Vue之前端批量下载文件并以压缩包形式存储
后端返回一个文件链接的数组,前端处理下载逻辑,并且将这些文件存储在压缩包内部,这用的jszip 和 file-saver 这两个库。 步骤说明 1.使用 npm 或 yarn 安装 jszip 和 file-saver。 npm install jszip file-saver 2.获取文件内容:…...
![](https://i-blog.csdnimg.cn/direct/e4871c17ddc6487899bed0df3099cdf0.png)
【AI学习】LLaMA模型的微调成本有几何?
在前面文章《LLaMA 系列模型的进化(二)》中提到了Stanford Alpaca模型。 Stanford Alpaca 基于LLaMA (7B) 进行微调,通过使用 Self-Instruct 方法借助大语言模型进行自动化的指令生成,Stanford Alpaca 生成了 52K 条指令遵循样例数…...
![](https://i-blog.csdnimg.cn/direct/1f507ec3e7284337b8453ebe2fe0e62e.png)
【专题】2024全数驱动 致胜未来-数字化敏捷银行白皮书报告合集PDF分享(附原数据表)
原文链接: https://tecdat.cn/?p37404 政策明确发展使命,新时代商业银行应坚持党建引领,秉持高质量发展理念。数字经济已成大势,商业银行需构建数字基础设施能力,强化顶层战略规划。当前商业银行数字化发展面临诸多挑…...
![](https://img-blog.csdnimg.cn/img_convert/5c4c57df2a32f3db014d2c74bd4fec57.webp?x-oss-process=image/format,png)
280Hz显示器哪家强
280Hz显示器哪家强?今天就给大家带来6大品牌和型号的280Hz显示器一起对比对比! 1.280Hz显示器 - HKC G27H3显示器 HKC G27H3是一款高性价比的电竞显示器,以下是它的一些特点: - **高刷新率与快速响应**: - 拥有280H…...
![](https://www.ngui.cc/images/no-images.jpg)
ROUTE_STATUS
ROUTE_STATUS是一个只读属性,由Vivado路由器分配给网络 反映网络上路由的当前状态。 该属性可以由单个网络或一组网络使用 get_property或report_property命令。该物业由 report_route_status命令返回整个设计的route_status。 架构支持 所有架构。 适用对象 •网络…...
![](https://www.ngui.cc/images/no-images.jpg)
v4l2(video4linux2) yuyv(yuv422)、MJPEG、H.264
V4L2(Video4Linux2)是Linux内核中的视频设备接口框架,专门用于捕获和输出视频数据。V4L2广泛应用于各种视频设备的驱动程序开发,如网络摄像头、电视调谐器、视频采集卡、以及其他视频输入/输出设备。 ### V4L2的主要功能 1. **视…...
![](https://www.ngui.cc/images/no-images.jpg)
.Net插件开发开源框架
在.NET开发中,有许多开源框架可以用于插件开发,以下是一些最常见的框架: MEF(Managed Extensibility Framework) MEF是一个用于创建可插拔软件应用程序的库,它可以在不修改原始应用程序的情况下扩展应用程…...
![](https://i-blog.csdnimg.cn/direct/85615afaf69d49328621048eb9ae5cba.png#pic_center)
基于Spark实现大数据量的Node2Vec
基于Spark实现大数据量的Node2Vec Node2Vec 是一种基于图的学习算法,用于生成图中节点的低维度、高质量的向量表示。这种算法基于 word2vec 模型,将自然语言处理中的词嵌入技术应用于图结构的节点,以捕捉节点之间的复杂关系。Node2Vec 特别强…...
![](https://img-blog.csdnimg.cn/img_convert/8544e5af5b06455221b652ed50d58572.png)
[VMware]VMware-Esxi 6.7 厚置备转为精简置备
背景:创建了一个win10 60G的厚置备磁盘,现在想改为精简置备。 先关闭win10系统,并删除快照 1、开启shell 2、登录到虚拟存放的目录 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [rootxxx:~] cd /vmfs/volumes/5fea055e-458157d3-c8f8-8cec4ba51c4…...
![](https://www.ngui.cc/images/no-images.jpg)
vue面试题十八
一、Vue 3中的样式绑定有哪些新特性? Vue 3中的样式绑定保持了与Vue 2相似的灵活性和强大功能,同时引入了一些新的特性和改进,主要集中在响应式系统和Composition API上。以下是Vue 3中样式绑定的主要新特性及其说明: 1. 响应式…...
![](https://www.ngui.cc/images/no-images.jpg)
windows C++-windows C++/CX简介(三)
^类型 (^) 是 C/CX 最突出的功能之一——当人们第一次看到 C/CX 代码时,很难不注意到它。那么,^ 类型到底是什么?这是类型是一种智能指针类型,它自动管理 Windows 运行时对象的生命周期,也 提供自动类型转换功能以简化…...
![](https://i-blog.csdnimg.cn/direct/a6ce66d7468b4ece8d922b3499f8a53d.png)
《黑神话.悟空》:一场跨越神话与现实的深度探索
《黑神话.悟空》:一场跨越神话与现实的深度探索 在国产游戏日益崛起的今天,《黑神话.悟空》以其独特的剧情、丰富的人物设定和深刻的主题,成为了无数玩家翘首以盼的国产3A大作。这款游戏不仅是一次对传统故事的创新演绎,更是一场对…...
![](https://www.ngui.cc/images/no-images.jpg)
【Kotlin设计模式】建造者模式在Android中的应用
前言 建造者模式(Builder Pattern)是一种创建型设计模式,一步一步地构建一个复杂对象的不同部分,而不是直接创建该对象的实例。建造者模式的核心思想是将对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的…...
![](https://www.ngui.cc/images/no-images.jpg)
Kafka 性能为什么比 RocketMQ 好
Kafka 性能更好的原因 因为 kafka 零拷贝技术跟 RocketMQ 的不一样。 kafka 零拷贝技术使用的是 sendfileDMA scatter/gather 。只需要经过 2 次拷贝,2 次上下文切换RocketMQ 零拷贝使用的 mmap 内存映射,需要经过 3 次拷贝,4 次上下文切换…...
![](https://www.ngui.cc/images/no-images.jpg)
el-image的配套使用(表格,表单)
1. 配合table在一起使用,支持预览 此处使用场景是表格中只显示一张图片 preview-src-list只支持数组,故需要将单个字符串转换为转换为字符串数组 <el-table-column align"center" label"二维码"><template slot-scope&q…...
![](https://img-blog.csdnimg.cn/828cca22bf3247b0a1267bc356341abb.png)
MKS MWH-5匹配器Automatc matching impedance Network手侧
MKS MWH-5匹配器Automatc matching impedance Network手侧...
![](https://www.ngui.cc/images/no-images.jpg)
打卡50天------图论
正式开启图论了,作为一个前端工程师,这个代码随想录真的刷新了我对于算法的认知,每天都在学习新东西。 别着急、放轻松、慢慢来。 一、图论理论基础 二、深搜理论基础 了解一下深搜的原理和过程,其实对于深搜和广搜我自己也写过…...
![](https://i-blog.csdnimg.cn/direct/76509d2bae7d47e79da48bda6767ff7b.png)
实现 FastCGI
CGI的由来: 最早的 Web 服务器只能简单地响应浏览器发来的 HTTP 请求,并将存储在服务器上的 HTML 文件返回给浏 览器,也就是静态 html 文件,但是后期随着网站功能增多网站开发也越来越复杂,以至于出现动态技 术&…...
![](https://i-blog.csdnimg.cn/direct/c938e0a1fd0547c89042ee6701f31c10.png)
0x01 GlassFish 任意文件读取漏洞复现
参考文章: 应用服务器glassfish任意文件读取漏洞 - SecPulse.COM | 安全脉搏 fofa 搜索使用该服务器的网站 网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统 "glassfish"&…...
![](https://www.ngui.cc/images/no-images.jpg)
RLOC_ORIGIN
RLOC_ORIGIN属性为相对放置的对象提供绝对位置或LOC RTL设计中的宏(RPM)。有关定义RPM和使用 RLOC_ORIGIN属性,请参阅《Vivado Design Suite用户指南:使用约束》 (UG903)[参考文献19]。 RPM是通过使用H_set…...
![](https://img-blog.csdnimg.cn/direct/531165c3ae494a6ea813e245d31082c8.gif#pic_center)
【Python】成功解决 NameError: name ‘reload‘ is not defined
【Python】成功解决 NameError: name ‘reload’ is not defined 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介:985高校…...
![](https://img-blog.csdnimg.cn/2e3c99f0a4b845b29f5bf275a90a552f.jpeg)
Android.bp和Android.mk文件有的区别
文章目录 1. 构建系统2. 语法和格式3. 可维护性和扩展性4. 编译效率5. 未来趋势 在Android的构建系统中, Android.mk和 android.bp是用于定义如何编译项目文件的两种文件类型,它们有一些显著的区别。 1. 构建系统 Android.mk:使用于基于GN…...
![](https://i-blog.csdnimg.cn/direct/664ffe26f044481ca9906f01258da755.png)
思科设备静态路由实验
拓扑及需求 网络拓扑及 IP 编址如图所示;PC1 及 PC2 使用路由器模拟;在 R1、R2、R3 上配置静态路由,保证全网可达;在 R1、R3 上删掉上一步配置的静态路由,改用默认路由,仍然要求全网可达。 各设备具体配置…...
![](https://www.ngui.cc/images/no-images.jpg)
学习笔记第二十九天
IPC 进程间通信方式:共享内存 原理 共享内存是最高效的进程间通信方式之一,因为它允许两个或多个进程直接访问同一块物理内存区域。这种机制避免了数据在用户空间和内核空间之间的频繁拷贝,从而显著提高了数据传输的效率。 在Linux系统中&…...
![](https://img-blog.csdnimg.cn/img_convert/dd6839e9f883a17c1fe3f8c8f96bebbe.jpeg)
Apache Paimon走在正确的道路上|一些使用体验和未来判断
Apache Paimon这个框架大家应该都不陌生了。 在实际工作中大家应该多多少少都用到,这个文章是一个简单的使用体会。不涉及湖框架的拉踩,我们的着眼点是解决实际问题。 我来结合自身体会跟大家说说Paimon这个框架和对未来的一些判断。大家可以参考&#x…...
![](https://i-blog.csdnimg.cn/direct/c1c86a16b999488994e294cae5a55d28.png)
安装MySQL入门基础指令
一.安装MySQL(以5.7版本为例) 1.一路默认安装,截图供大家参考 修改自己window安装名字即可 2.配置环境变量 C:\Program Files\MySQL\MySQL Server 5.7\bin 写入系统环境变量即可在window窗口使用其服务了 3.登录MySQL服务 进入控制台输入命令 mysql -u root …...
![](https://img-blog.csdnimg.cn/img_convert/0c66faaa93af1cc782e12618a5d3ec0f.png)
搜维尔科技:【研究】Haption Virtuose外科手术触觉视觉学习系统的开发和评估
Haption面临挑战 除此之外,外科医生有时会对骨组织进行非常复杂的手术,其中一个例子是人工耳蜗的手术植入。重要的是要避免神经或血管等危险结构受伤,并尽可能轻柔地进行手术。在外科医生能够安全、无差错地进行此类手术之前,需要…...
![](https://img-blog.csdnimg.cn/20210217105502841.png)
精神文明建设委员会网站/关键词排名查询工具
state 和 props 主要的区别: 在于 props 是不可变的,而 state 可以根据与用户交互来改变。 组件需要定义 state 来更新和修改数据,子组件只能通过 props 来传递数据。 1.如何在组件中使用 props: <body> <div id&quo…...
![](http://images.cnitblog.com/blog/360778/201402/271056422044524.jpg)
吉林电商网站建设/百度推广费
按照http://blog.csdn.net/azkabannull/article/details/7872958中的方法,在cygwin中运行runbundler.sh; 按照http://oliver.zheng.blog.163.com/blog/static/1424115952011915113138431/中的方法,使用Bundle2PMVS.exe和prep_pmvs.sh&#x…...
![](https://img-blog.csdnimg.cn/20210224000453828.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbWpvYnM=,size_16,color_FFFFFF,t_70)
廊坊网站建设优化/培训学校机构
思路: 特殊的情况是k0k0k0的时候,此时直接输出即可。 其他情况,很明显最后构造成这样: 1xxxxx1xxx0 1xxxxx0xxx1 要求k<ab−2k<ab-2k<ab−2,并且a≥1,b≥2a≥1,b≥2a≥1,b≥2 #include <cstdio> #incl…...
![](/images/no-images.jpg)
电脑版 做网站尺寸/最新新闻热点事件2024
USB(Universal Serial BUS,通用串行总线)协议规定,所有的USB设备都有VID(Vendor ID,供应商识别码)和PID(Product ID,产品识别码)。VID由供应商向USB-IF&#…...
![](https://images2018.cnblogs.com/blog/826328/201806/826328-20180605183442188-2132718339.png)
网站建设费是什么意思/太原seo计费管理
使用Git时,文件的生命周期如下: 转载于:https://www.cnblogs.com/144823836yj/p/9141260.html...
![](/images/no-images.jpg)
wordpress图片cdn/江苏网站建设推广
查看Linux服务器的运行级别:who -r 或 runlevelLinux系统有7个运行级别(runlevel) 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动运行级别1:单用户工作状态,root权限,用…...