leetcode 热题 100_合并两个有序链表

题解一:

        迭代:分别用两个指针遍历两段链表,逐步比较两链表的节点,将值较大的节点存入新链表,同时指针移动,直到某段链表遍历结束,将另一段链表剩余的节点存入新链表。需要注意存入新链表时要用新链表.next来存避免新链表指针出错。

import java.awt.*;class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {if (list1 == null) return list2;else if (list2 == null) return list1;ListNode result = new ListNode();ListNode temp = result;ListNode p1 = list1, p2 = list2;while (p1 != null && p2 != null) {if (p1.val <= p2.val) {temp.next = p1;p1 = p1.next;} else {temp.next = p2;p2 = p2.next;}temp = temp.next;}if (p1 == null && p2 != null) {while (p2 != null) {temp.next = p2;p2 = p2.next;temp = temp.next;}} else if (p1 != null && p2 == null) {while (p1 != null) {temp.next = p1;p1 = p1.next;temp = temp.next;}}return result.next;}
}

题解二:

        递归:将迭代的过程通过递归来实现,但由于递归核心代码是从链表末端开始执行的,所以无需考虑链表节点的覆盖问题,不容易出错,但递归也较难理解。具体递归步骤是先确定结束条件,判断两段链表是否为null再比较传入的两节点值(记做节点ab),将较大值节点a指向下一节点,这里下一节点可能是和它比较的节点b,或者它原先的下一节点a.next,具体要进行下一步比较,所以我们将节点ba.next作为参数递归调用,并将较大的节点作为返回值。附上图解(来源. - 力扣(LeetCode))

import java.awt.*;class Solution {public ListNode F(ListNode list1, ListNode list2) {if (list1 == null) return list2;//递归结束条件else if (list2 == null) return list1;if (list1.val <= list2.val) {//调用递归并返回list1.next = F(list1.next, list2);return list1;} else {list2.next = F(list1, list2.next);return list2;}}public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode result = F(list1, list2);return result;}
}

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

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

相关文章

cad怎么转换成黑白的pdf图纸?分享3个常用的软件!

在工程设计、建筑、机械制造等领域&#xff0c;CAD图纸的应用非常广泛。然而&#xff0c;有时出于某些需要&#xff0c;我们可能需要将CAD图纸转换为黑白的PDF格式。那么&#xff0c;如何实现这一转换呢&#xff1f;本文将为您详细介绍几种常用的转换软件及其操作步骤。 迅捷CA…

Java代码审计安全篇-SSRF(服务端请求伪造)漏洞

前言&#xff1a; 堕落了三个月&#xff0c;现在因为被找实习而困扰&#xff0c;着实自己能力不足&#xff0c;从今天开始 每天沉淀一点点 &#xff0c;准备秋招 加油 注意&#xff1a; 本文章参考qax的网络安全java代码审计&#xff0c;记录自己的学习过程&#xff0c;还希望各…

简单的torch网络模型记录

线性dense网络结构&#xff0c;输入(B,W) class Model(nn.Module):def __init__(self):super().__init__()self.media_type_embed nn.Embedding(num_media_type, embed_dim)self.mid_scroe_embed nn.Embedding(num_mid_score, embed_dim)#self.cat torch.cat()self.model …

FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+图像缩放,提供3套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI接收发送本方案的SDI接收纯verilog图像缩放纯verilog多路视频拼接应用本方案的SDI接收HLS图像缩放HLS多路视频拼接应用本方案的SDI接收OSD动态字符叠加输出应用本方案的SDI接收HLS多路视频融合叠加应…

相机模型Omnidirectional Camera(全方位摄像机)

1. 背景 大多数商用相机都可以描述为针孔相机&#xff0c;通过透视投影进行建模。然而&#xff0c;有些投影系统的几何结构无法使用传统针孔模型来描述&#xff0c;因为成像设备引入了非常高的失真。其中一些系统就是全方位摄像机。 有几种方法可以制作全向相机。屈光照相机(D…

Python in Visual Studio Code 2024年3月发布

排版&#xff1a;Alan Wang 我们很高兴地宣布 2024 年 3 月发布适用于 Visual Studio Code 的 Python 和 Jupyter 扩展&#xff01; 此版本包括以下公告&#xff1a; 新的“Add Imports”代码操作设置调试 Django 或 Flask 应用时自动启动浏览器Python REPL 的 Shell 集成对本…

28 批量归一化【李沐动手学深度学习v2课程笔记】(备注:这一节讲的很迷惑,很乱)

目录 1.批量归一化 1.1训练神经网络时出现的挑战 1.2核心思想 1.3原理 2.批量规范化层 2.1 全连接层 2.2 卷积层 2.3 总结 3. 代码实现 4. 使用批量规范化层的LeNet 5. 简明实现 1.批量归一化 现在主流的卷积神经网络几乎都使用了批量归一化 批量归一化是一种流行且…

树莓派Py程序加入开机自启

创建服务文件 为你的服务创建一个 .service 文件。这个文件通常位于 /etc/systemd/system/ 目录下。例如&#xff0c;如果你的服务名称为 my_python_script.service&#xff1a; sudo nano /etc/systemd/system/my_python_script.service 在打开的编辑器中&#xff0c;输入以下…

利用“定时执行专家”软件的25种任务与12种触发器,提升IT系统管理自动化水平

在IT系统管理中&#xff0c;自动化是提高工作效率、减少人为错误的关键。而《定时执行专家》这款软件&#xff0c;以其强大的功能、易用性和毫秒级的执行精度&#xff0c;成为了IT系统管理员的得力助手。今天&#xff0c;我们就来探讨一下如何利用这款软件的25种任务类型和12种…

Day37:安全开发-JavaEE应用JNDI注入RMI服务LDAP服务JDK绕过调用链类

目录 JNDI注入-RMI&LDAP服务 JNDI远程调用-JNDI-Injection JNDI远程调用-marshalsec JNDI-Injection & marshalsec 实现原理 JNDI注入-FastJson漏洞结合 JNDI注入-JDK高版本注入绕过 思维导图 Java知识点&#xff1a; 功能&#xff1a;数据库操作&#xff0c;文…

python实现冒泡排序

冒泡排序是一种简单的排序算法&#xff0c;它重复地遍历要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换&#xff0c;也就是说该数列已经排序完成。 以下是用Python实现冒泡排序的代…

Fair Data Exchange:区块链实现的原子式公平数据交换

1. 引言 2024年斯坦福大学和a16z crypto research团队 论文 Atomic and Fair Data Exchange via Blockchain 中&#xff0c;概述了一种构建&#xff08;包含过期EIP-4844 blobs的&#xff09;fair data-markets的协议。该论文源自a16z crypto的暑期实习计划&#xff0c;与四名…

Golang 中 map[string]string 如何在 TOML 文件中配置

Go结构体定义 Go结构体定义attributes字段&#xff0c;并且使用了toml标签。例如&#xff1a; type Config struct {Attributes map[string]string toml:"attributes" }TOML文件格式 以attributes为例&#xff0c;TOML文件应该像这样&#xff1a; [attributes] k…

无名管道在进程中使用的方法实战

管道一般是单向的。一个进程往里面写&#xff0c;另一个进程从里面读。 #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/wait.h>int main() {pid_t pid;int fd[2];int n;char buf[20]; //c…

VUE+VScode+elementUI开发环境

0.vue官方文档 你正在阅读的是 Vue 3 的文档&#xff01; 1.前端准备阶段 VUEVScodeelementUI开发环境 2.Vue外部组件 element-ui 3.angular外部组件 angular-ui 4.教学视频 尚学堂b站视频 5.教学视频配套文档 D:\BaiduNetdiskDownload\025【尚学堂】全新2022版WEB前端为初学者…

下载BenchmarkSQL并使用BenchmarkSQL查看OceanBase 的执行计划

下载BenchmarkSQL并使用BenchmarkSQL查看OceanBase 的执行计划 一、什么是BenchmarkSQL二、下载BenchmarkSQL三、使用BenchmarkSQL查看OceanBase 的执行计划 一、什么是BenchmarkSQL BenchmarkSQL是一个开源的数据库基准测试工具&#xff0c;可以用来评估数据库系统的性能&…

在没有推出硬盘的情况下,重启mac电脑,外接移动硬盘无法加载显示?

一、mac磁盘工具显示未装载 1.打开终端&#xff0c;输入 diskutil list查看当前硬盘列表&#xff0c;大多数时候&#xff0c;可以解决。 二、使用命令行装载硬盘 执行上面命令后&#xff0c;仍不起作用&#xff0c;则手动挂载&#xff0c;在命令行输入如下内容&#xff1a; …

【性能】如何计算 Web 页面的 TTI 指标

什么是 TTI 指标 TTI&#xff08;Time To Interactive&#xff09;&#xff0c;即从页面加载开始到页面处于完全可交互状态所花费的时间。页面处于完全可交互状态时&#xff0c;满足以下 3 个条件&#xff1a; 页面已经显示有用内容。页面上的可见元素关联的事件响应函数已经…

pytorch激活函数

目录 1.激活函数由来2. 常见激活函数2.1 Sigmoid2.2 Tanh2.3 relu 1.激活函数由来 科学家对青蛙的神经元进行研究的时候发现&#xff0c;只有超过一定的阈值青蛙才会有反应&#xff0c;因此不能将多个输入做简单的加权平均&#xff0c;而需要一个阶梯函数也就是激活函数&#…

便携式能见度仪-关键能见度数据检测工具

TH-BN6随着科技的不断进步和应用领域的日益拓宽&#xff0c;便携式能见度仪已经成为众多行业&#xff0c;尤其是交通运输、环保监测和公共安全等领域的必备工具。这款设备以其便携性、准确性和高效性&#xff0c;在移动或狭窄的空间中实现了对能见度数据的精确测量。 一、便携式…