算法-java

题目来自牛客网

输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。

数据范围: 0≤𝑛≤10000≤n≤1000,−1000≤节点值≤1000−1000≤节点值≤1000
要求:空间复杂度 𝑂(1)O(1),时间复杂度 𝑂(𝑛)O(n)

如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},

import java.util.*;/** public class ListNode {*   int val;*   ListNode next = null;*   public ListNode(int val) {*     this.val = val;*   }* }*/public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param pHead1 ListNode类 * @param pHead2 ListNode类 * @return ListNode类*/public ListNode Merge (ListNode pHead1, ListNode pHead2) {// write code hereif(pHead1 == null) return pHead2;if(pHead2 == null) return pHead1;ListNode res =new ListNode(0);ListNode p=res;while(pHead1 !=null && pHead2!=null){if(pHead1.val <=pHead2.val){res.next =pHead1;pHead1=pHead1.next;}else{res.next=pHead2;pHead2=pHead2.next;}res=res.next;}if(pHead1==null){res.next=pHead2;}else{res.next=pHead1;}return p.next;}
}

这段代码实现了将两个有序链表合并为一个有序链表的功能。下面是对这段代码的解析:

  1. 首先判断两个输入链表是否为空,如果其中一个为空,则直接返回另一个链表。
  2. 创建一个新的链表头节点 res,并用指针 p 指向该头节点,用于构建合并后的链表。
  3. 使用 while 循环,遍历两个输入链表,直到其中一个链表为空。
  4. 在循环中,比较当前两个链表节点的值,将较小的节点接到 res 节点后面,并将指针移动到下一个节点。
  5. 循环结束后,将剩余的非空链表直接接到 res 节点后面。
  6. 返回合并后的链表的头节点,即 res 的下一个节点。

这段代码的时间复杂度为 O(m + n),其中 m 和 n 分别是两个输入链表的长度。因为只需要遍历一遍两个链表即可完成合并操作,所以时间复杂度是线性的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/11634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

佛山市组织开展2024年全市抗震救灾应急演练并召开相关部署会

为深入贯彻落实关于防灾减灾救灾重要论述精神和国家、省、市决策部署,提高佛山市应对地震灾害的抢险救灾实战能力,构建切实可行、快速反应、科学处置的抗震救灾应急救援工作体系,结合第16个全国防灾减灾日宣传主题,5月11日上午,佛山市组织开展2024年全市抗震救灾应急演练并召开…

WXML语法

WXML语法 1.数据绑定2.条件和列表渲染3.模板4.事件绑定4.1 事件分类4.2 事件绑定方式4.3 参数传递 5.WXS语法 1.数据绑定 将数据仓库data中的数据绑定显示在页面中。语法&#xff1a;{{ 变量 }}&#xff0c;称为“Mustache”语法&#xff0c;也称为插值表达式作用&#xff1a;…

Java中Collection接口中方法的使用(初学者指南)

Java中Collection接口中方法的使用&#xff08;初学者指南&#xff09; 在Java中&#xff0c;Collection接口是集合框架的根基&#xff0c;它定义了一系列通用的方法&#xff0c;用于操作各种集合&#xff08;如List、Set等&#xff09;。对于初学者来说&#xff0c;理解这些方…

计算机网络 3.3OSI参考模型

第三节 OSI参考模型 一、认识OSI/RM 1.描述&#xff1a;定义了一个连接异种计算机的标准主体结构&#xff0c;给网络设计者提供了一个参考规范。 2.组织&#xff1a;国际标准化组织. 3.发展&#xff1a;1979年研究并提出了该国际标准。 4.分层原则&#xff1a; ①层次的划…

d17(154-168)-勇敢开始Java,咖啡拯救人生

目录 方法递归 字符集 编码-解码 IO流 字节流 字节输入流 InputSream FileInputStream 字节输出流 OutputSream FileOutputSream 释放资源的方式 try-catch-finallly try-with-resource 字符流 字符输入流 Reader FileReader 文件字符输出流 Writer FileWriter …

达梦数据库 报错 数据类型不匹配

达梦数据库 报错 数据类型不匹配 背景描述问题分析问题处理方案1&#xff1a;方案2&#xff1a;TO_CHAR(str)CAST(value AS type)CONVERT(type,value)DBMS_LOB 包TEXT_EQUAL(n1,n2) 写在最后 背景描述 本文写于初接触到达梦(DM)数据库&#xff0c;之前没有用过&#xff0c;因此…

电脑快速搜索文件及文件夹软件——Everything

一、前言 Everything是一款由voidtools开发的文件搜索工具&#xff0c;主要运行于Windows操作系统上。它的主要功能是快速、高效地搜索电脑上的文件和文件夹名称。Everything通过利用NTFS文件系统的MFT&#xff08;主文件表&#xff09;来索引文件&#xff0c;从而实现几乎实时…

基于SpringBoot + MySQL的宠物医院管理系统设计与实现+毕业论文+指导搭建视频

系统介绍 项目的使用者可以避免排队挂号&#xff0c;比较方便&#xff0c;也方便于宠物医院的管理。现在的宠物本系统根据华阳社区宠物医院管理工作流程将系统使用者划分为三类&#xff0c;分别为、宠物医生、宠物主人以及系统管理人员&#xff0c;以下是对该三类类用户的具体…

Jmeter内存溢出原因及解决办法

现在越来越多的小伙伴在压力测试过程中选择使用Jmeter&#xff0c;原因是这个工具开源且小巧&#xff0c;而且还支持二次开发。 但是事情都有两面性&#xff0c;利弊共存啊&#xff0c;对比商业软件Loadrunner&#xff0c;Jmeter在高并发&#xff0c;特别是大型项目的高并发&a…

浏览器执行渲染原理

一、事件循环 事件循环&#xff08;Event Loop&#xff09;是JavaScript的执行环境的核心概念之一&#xff0c;它负责处理JavaScript中的异步操作和执行顺序。事件循环使得JavaScript能够在单线程上有效地处理并发&#xff0c;同时保持编程模型的简单性。 以下是事件循环的一…

使用Eigen将经纬度、高程、偏北角转成变换矩阵

目录 1、前言 2、示例 3、代码解析 4、垂直于给定点的切平面变换 5、代码解析 1、前言 在地球表面进行刚体变换时候&#xff0c;要将具有经纬度、高程和偏北角的坐标信息转换为变换矩阵表达&#xff0c;首先需要了解坐标系之间的转换关系。 通常&#xff0c;我们会将经纬…

每天五分钟深度学习pytorch:tensor与python、numpy之间的转换

本文重点 前面我们学习了pytorch的默认数据类型是torch.FloatTensor,那么本节课程我们将学习如何将不同的数据类型之间进行数据转换?还会学习tensor中cpu和gpu的转换,以及tensor和numpy以及python之间的类型转换,在实际编程中,可能这些需要时刻使用的。 不同类型之间的转…

AI2024(64bit) Adobe Illustrator 软件安装包下载

AI2024(64bit) Adobe Illustrator 软件安装包下载地址&#xff1a; 百度网盘下载https://pan.baidu.com/s/1C10-2JVN1rxFF5VFRuV2Yw?pwdSIMS 在创意设计的浩瀚宇宙中&#xff0c;Adobe Illustrator 2024如同一颗璀璨新星&#xff0c;以其无与伦比的创新功能和优化体验&#x…

如何实现上拉加载,下拉刷新

上拉加载&#xff0c;下拉刷新这两种交互&#xff0c;经常出现在移动端中&#xff0c;本质上和PC网页的分页一样&#xff0c;只是交互形式不同而已。 开源社区中有很多的方案&#xff0c;比如&#xff1a;isscroll、better-scroll、pulltorefresh.js&#xff0c;这些第三方库使…

一、Hive优化

1-1 分桶采样 当表的数据量比较庞大的时候, 在编写SQL语句后, 需要首先测试 SQL是否可以正常的执行, 需要在表中执 行查询操作, 由于表数据量比较庞大, 在测试一条SQL的时候整个运行的时间比较久, 为了提升测试效率, 可以整个表 抽样出一部分的数据, 进行测试 校验数据的可行…

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (七)

LlaMA 3 系列博客 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (一) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (二) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (三) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (四) 基于 LlaMA…

快团团新人怎么找供货团长?免费教程一学就会!

作为快团团的新手&#xff0c;想要寻找供货团长&#xff0c;可以按照以下步骤进行&#xff1a; 打开微信&#xff1a;首先&#xff0c;在您的手机上打开微信应用。 搜索快团团&#xff1a;在微信顶部的搜索框中输入“团长运营之家”&#xff0c;选择出现的“团长运营之家”公号…

搭建网站式个人网盘-超仿Windows界面

搭建网站式个人网盘-超仿Windows界面 效果图部分源码领取源码下期更新预报 效果图 一款网站式个人网盘源码-Windows界面相等于一个网站式电脑可以放照片&#xff0c;视频-支持在线播放&#xff08;你懂的&#xff09;我觉得式一款很不错的个人网盘提醒&#xff1a;千万不要升级…

论坛帖子数据抓取

要抓取论坛帖⼦数据&#xff0c;包括帖⼦标题、作者和发布⽇期&#xff0c;可以使⽤ requests 库获取⽹⻚内容&#xff0c;再⽤ BeautifulSoup 解析HTML。 由于直接抓取具体论坛的数据可能涉及到版权和隐私问题&#xff0c;这⾥将使⽤假定的元素和类名来说明如何实现这⼀过程。…

leetcode 918.环形子数组的最大和

思路&#xff1a;DP 其实和昨天做的哪个重复数组差不多&#xff0c;按顺序来说先做这个题目其实更好。 这里需要分两种情况&#xff1a;第一个&#xff0c;就是数组不越界的时候&#xff0c;这个时候最大子数组和就是leetcode 53题的题解。 如果说越界了&#xff0c;我们还需…