2025年- H1-Lc109-160. 相交列表--java版

1.题目描述

在这里插入图片描述

2.思路

“双指针切换链表头”
思路一:双指针+路径对齐
while (pA != pB) {
pA = (pA == null) ? headB : pA.next;
pB = (pB == null) ? headA : pB.next;
}

让两个指针走相同的总路径长度!
设:

链表 A 独有部分长度是 lenA

链表 B 独有部分长度是 lenB

公共部分长度是 lenCommon

那两个指针会走的路径:

指针 A:先走 lenA + lenCommon,然后换到 B 头再走 lenB

指针 B:先走 lenB + lenCommon,然后换到 A 头再走 lenA

于是总长度都是:lenA + lenB + lenCommon
在这里插入图片描述
在这里插入图片描述

3.代码实现

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if(headA==null||headB==null) return null;ListNode PA=headA;ListNode PB=headB;while(PA!=PB){if(PA!=null){PA=PA.next;}else{PA=headB;}if(PB!=null){PB=PB.next;//如果PB列表有元素就直接指向下一个}else{PB=headA;//如果PB已经到末尾了,开始遍历A列表}}return PB;//这边返回PA和PB都可以}
}

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

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

相关文章

PyTorch 深度学习 || 6. Transformer | Ch6.3 Transformer 简单案例

1. 简单案例 这个代码是一个简单的 Transformer 模型的实现,这个例子展示了一个基本的序列到序列(seq2seq)任务,比如将一个数字序列转换为另一个数字序列。可以用于学习和理解 Transformer 的基本结构和工作原理。 import torch import torch.nn as nn import math# 位置…

基础算法篇(4)(蓝桥杯常考点)—数据结构(进阶)

前言 这期将会讲到基础算法篇里面的数据结构(进阶),主要包括单调栈,单调队列,并查集,扩展域并查集,带权并查集,字符串哈希,Trie树。 数据结构(进阶)正文 单…

【AI学习】初步了解Gradio

Gradio 是一个开源的 Python 库,专注于快速构建交互式 Web 界面,特别适用于机器学习模型、数据科学项目或任意 Python 函数的演示与部署。它通过极简的代码实现前后端一体化,无需前端开发经验即可创建功能丰富的应用。以下是 Gradio 的核心特…

Overleaf 论文提交 Arxiv

Contents References 清除 Overleaf 中所有编译 error,并且保证 main.tex 文件在 project 最上层参考文件 .bib 转 .bbl. project 编译成功后可以在 Overleaf 的 Recompile 按钮右侧找到 “Logs and output files”,点进去之后右下角可以点开 “Other lo…

【Android Audio】Parameter Framework - pfw

Parameter Framework - Android AudioPolicy Engine 使用 libengineconfigurable.so 来取缔默认安卓音频引擎 libenginedefault.so,因为默认安卓音频引擎是通过代码来决定策略,然而 libengineconfigurable 采用读取pfw类型的文件来实现音频策略配置。 …

服务器虚拟化技术深度解析:医药流通行业IT架构优化指南

一、服务器虚拟化的定义与原理 (一)技术定义:从物理到虚拟的资源重构 服务器虚拟化是通过软件层(Hypervisor)将物理服务器的CPU、内存、存储、网络等硬件资源抽象为逻辑资源池,分割成多个相互隔离的虚拟机…

babel-runtime 如何缩小打包体积

🤖 作者简介:水煮白菜王,一位前端劝退师 👻 👀 文章专栏: 前端专栏 ,记录一下平时在博客写作中,总结出的一些开发技巧和知识归纳总结✍。 感谢支持💕💕&#…

剑指Offer(数据结构与算法面试题精讲)C++版——day7

剑指Offer(数据结构与算法面试题精讲)C版——day7 题目一:最多删除一个字符得到回文题目二:回文子字符串的个数题目三:删除倒数第k个节点 题目一:最多删除一个字符得到回文 这里我们可以在经典的字符串回文…

2025年常见渗透测试面试题(题目+回答)

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 常见面试题 一、渗透测试经历与技术复盘 二、高频漏洞类型与攻防体系 三、渗透工具链与技术特性 四、…

大数据与人工智能之大数据架构(Hadoop、Spark、Flink)

一、核心特性与架构设计 1. Hadoop:分布式批处理的基石 核心组件: HDFS:分布式文件系统,支持大规模数据存储。MapReduce:基于“分而治之”的批处理模型,适合离线分析。 架构特点: 批处理主导&…

从IoT到AIoT:智能边界的拓展与AI未来趋势预测

文章目录 引言:从连接万物到感知万物1. AIoT的本质:将智能嵌入万物2. AIoT的推动力量与挑战2.1 推动力量2.2 关键挑战 3. 五大AIoT未来趋势预测趋势一:边缘智能将成为主流架构趋势二:AI模型将向自适应与多任务演进趋势三&#xff…

从本地新建文件夹到拉取远程仓库 dev 分支的完整步骤

《从本地新建文件夹到拉取远程仓库 dev 分支的完整步骤》 下面为你详细介绍从本地新建文件夹开始,将远程仓库的 dev 分支拉取到本地的具体步骤: 1. 创建新文件夹 在本地电脑上新建一个文件夹,作为存放项目代码的目录。你可以通过图形界面操…

python/pytorch杂聊

Dataset 是否需要自己定义:如果你使用的数据集不是 PyTorch 提供的标准数据集(如 MNIST、CIFAR-10 等),那么你需要继承 torch.utils.data.Dataset 类并实现两个方法:__len__() 和 __getitem__()。__len__() 应该返回数…

PHP 安全 E-mail

PHP 安全 E-mail 引言 随着互联网的普及和电子商务的发展,电子邮件成为了人们日常生活中不可或缺的通信工具。PHP作为一种广泛使用的服务器端脚本语言,也经常被用于发送和接收电子邮件。然而,在PHP中处理电子邮件时,安全性问题不容忽视。本文将深入探讨PHP安全发送电子邮…

【夜话系列】DelayQueue延迟队列(下):实战应用与面试精讲

🔥 本文是DelayQueue系列的下篇,聚焦实战应用场景和性能优化。通过多个真实案例,带你掌握DelayQueue在项目中的最佳实践和性能调优技巧。 📚 系列专栏推荐: JAVA集合专栏 【夜话集】JVM知识专栏数据库sql理论与实战小游戏开发文章目录 一、DelayQueue实战应用1.1 订单超…

Redis(笔记)

简介: 常用数据类型: 常用操作命令: Redis的Java客户端: 操作字符串类型的数据: 操作Hash类型的数据: 操作列表类型的数据: 操作集合类型的数据: 操作有序集合类型数据: 通用命令…

PhotoShop学习05

1.选区基础知识 选区,就是选定一些区域,我们对图片的更改只在选区内生效,这样可以精细调整图片的部分而不会影响整体。它的快捷键是M。 我们用点击鼠标后滑动就会出现虚线框,虚线框内的就是我们选定的区域。这时我们再滑动就会创…

使用Redission实现分布式锁

分布式锁在分布式系统中非常重要,主要用于解决多个进程/服务并发访问共享资源时的数据一致性问题。在日常开发中常用于: 1. 防止重复操作(幂等性控制) 场景:用户重复提交订单、重复支付、重复点击等。 示例&#xff1…

VScode 画时序图(FPGA)

1、先安装插件: 2、然后就可以编写一个.js文件,如下: {signal: [{name: clk, wave: p.......|..},{name: rstn, wave: 01......|..},{name: din_vld, wave: 0.1.0...|..},{name: din, wave: "x.x...|..", data: ["D0", …

嵌入式学习笔记——I2C

IIC协议详解 一、IIC协议简介二、IIC总线结构图三、IIC通信流程详解1. 空闲状态 : 双高空闲2. 起始信号(START): 时高数下开始3. 停止信号(STOP): 时高数上结束4. 数据传输格式 : 时高数稳,时低数变5. 应答信号 四、写…