相交链表-力扣

一、题目描述

2e24ed50912d4823822f0263b0e22f4a.png

题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 

二、题解 

 注意题目所说的相交,相交节点不只是数值上的相等,而是相交以后两条链变成一条链。

c3e6713c51f8461ab07b8bd0ce6da80b.png

解决改题目,我们可以:

1、先求出两条链表的长度,然后求出长度的差值len;

2、定义两个节点pl、pspl节点始终指向较长的那个链表,ps节点始终指向较短的那个链表,并且一开始,两个节点均指向链表的头节点;

3、让指向较长链表的pl节点先走差值len步,然后pl、ps两个节点一起走,直到两个节点相遇,此时分两种情况:

  • pl = null,即两个链表不相交,返回null
  • pl不为空,则此时pl所指节点正是所求的相交节点

 

三、代码 

    public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode pl = headA;ListNode ps = headB;int len1 = 0;int len2 = 0;while(pl != null) {len1++;pl = pl.next;}while(ps != null) {len2++;ps = ps.next;}pl = headA;ps = headB;int len = len1-len2;if(len < 0) {pl = headB;ps = headA;len = len2-len1;}while(len!=0) {pl = pl.next;len--;}while(pl!=ps) {pl = pl.next;ps = ps.next;}if(pl == null) {return null;}return pl;}
}

 

 

 

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

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

相关文章

LeetCode75——Day16

文章目录 一、题目二、题解 一、题目 1004. Max Consecutive Ones III Given a binary array nums and an integer k, return the maximum number of consecutive 1’s in the array if you can flip at most k 0’s. Example 1: Input: nums [1,1,1,0,0,0,1,1,1,1,0], k …

【洛谷 P1518】[USACO2.4] 两只塔姆沃斯牛 The Tamworth Two 题解(深度优先搜索)

[USACO2.4] 两只塔姆沃斯牛 The Tamworth Two 题目描述 两只牛逃跑到了森林里。Farmer John 开始用他的专家技术追捕这两头牛。你的任务是模拟他们的行为&#xff08;牛和 John&#xff09;。 追击在 10 10 10 \times 10 1010 的平面网格内进行。一个格子可以是&#xff1…

面试中经常问道的问题一

ActiveMQ持久订阅设置 在JMS中,Topic实现publish和subscribe语义。一条消息被publish时,它将发到所有感兴趣的订阅者,所以零到多个subscriber将接收到消息的一个拷贝。但是在消息代理接收到消息时,只有激活订阅的subscriber能够获得消息的一个拷贝。 JMS Queue执行load bal…

C使用const详细(学习笔记)

1、对形参使用const&#xff0c;告诉编译器&#xff0c;该函数不能修改arr指向的数组中的内容。 int sum(const int * arr,int n);2、指向const的指针不能用于改变值 3、把const数据或非const数据的地址初始化为只想const的指针或为其赋值时合法的 //带const的指针&#xff0…

景联文科技提供4D-BEV标注工具:提升自动驾驶感知能力的精准数据支持

4D-BEV标注是一种用于自动驾驶领域的数据标注方法。在3D空间的基础上&#xff0c;加入了时间维度&#xff0c;形成了四个维度。这种方法通过精准地跟踪和记录动态对象&#xff08;如车辆、行人&#xff09;的运动轨迹、姿势变化以及速度等信息&#xff0c;全面理解和分析动态对…

【Python机器学习】零基础掌握DictVectorizer特征提取

如何有效地处理和转换非数值型的数据,以便能够用于机器学习模型? 在实际生活中,特别是在数据分析和机器学习领域,经常会遇到需要处理的数据并不都是数值型的。比如在电商网站的用户行为分析中,可能会记录用户的性别、购买产品类型、支付方式等信息。这些数据中有些是分类…

avaScript 条件分支语句以及示例和详细代码解释为什么这样写呢(1)

在JavaScript中&#xff0c;条件分支语句主要有if语句、else if语句和else语句。条件分支语句用于根据不同的条件执行不同的代码块。下面是一个使用条件分支语句的示例代码&#xff1a; javascript let num 10;if (num > 0) {console.log("num是一个正数"); } e…

Java中JVM、JRE和JDK三者有什么区别和联系?

任何语言或者软件的运行都需要环境。就像人要生活在空气中&#xff0c;鱼要活在水中&#xff0c;喜阴植物就不能放在阳光下暴晒一样&#xff0c;任何对象个体的存在都离不开其所需要的环境&#xff0c;编程语言亦是一样的。 java 语言的开发运行&#xff0c;也离不开 Java 语言…

vue中前端导出excel的两种方法

vue中前端导出excel方法 其实前端导出和后端导出的处理方式很类似 我们这样主要是根据后端接口返回的不分页的列表来进行整体导出功能的实现 依赖文件 可以直接cv到项目中 utils下的 Export2Excel.js文件 require(script-loader!file-saver); require(script-loader!xlsx/d…

crossover23.6闪亮登场发布啦,2023最新功能解析

CrossOver刚刚更新了23.6版本&#xff0c;新增了多款游戏的支持&#xff0c;快来看看你想玩的游戏在不在里面吧。点击这里立即下载最新版CrossOver。 软件介绍 CrossOver 23.6 让Mac可以运行Windows程序的工具 已通过小编安装运行测试 100%可以使用。 CrossOver for Mac 23.…

OKLink携手CertiK在港举办Web3生态安全主题论坛

2023年10月23日&#xff0c;OKLink与CertiK共同发起的Web3生态安全主题论坛在香港铜锣湾拉开帷幕。本次论坛由OKLink和CertiK主办&#xff0c;香港投资推广署独家支持&#xff0c;聚焦如何构建安全可靠的Web3生态系统议题&#xff0c;同时深入剖析这一进程中所面临的潜在挑战。…

企事业单位/公司电脑文件透明加密保护 | 防泄密软件\系统!

推荐——「天锐绿盾电脑文件防泄密系统」 一款全面的企业/公司数据透明加密防泄密系统&#xff0c;旨在从源头上保障数据的安全和使用安全。 PC访问地址&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 它具有以下特点&#xff1a…

第6周 .NET

好嘛&#xff01;本来以为上周SQL Server环境配置等已经够恶心了&#xff0c;没想到这周又得去搞所谓的Microsoft Visual Studio 2005了。 首先非常离谱的是&#xff0c;这个Microsoft Visual Studio 2005如果就是指Visual Studio 2005&#xff0c;那么已经是8年前的老的不行的…

TensorFlow图像多标签分类实例

接下来&#xff0c;我们将从零开始讲解一个基于TensorFlow的图像多标签分类实例&#xff0c;这里以图片验证码为例进行讲解。 在我们访问某个网站的时候&#xff0c;经常会遇到图片验证码。图片验证码的主要目的是区分爬虫程序和人类&#xff0c;并将爬虫程序阻挡在外。 下面…

Python超入门(6)__迅速上手操作掌握Python

# 26.函数和参数 # 注意&#xff1a;有参函数和无参函数的名字要不同 def user(): # 无参函数print("hello world!")def user1(my_id): # 有参函数print(my_id)def user2(first_name, last_name): # 有参函数print(fMy name is {first_name} {last_name})print(&…

【机器学习】迁移学习(Transfer)详解!

1. 什么是迁移学习 迁移学习(Transfer Learning)是一种机器学习方法&#xff0c;就是把为任务 A 开发的模型作为初始点&#xff0c;重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务&#xff0c;虽然大多数机器学习算法都是…

微信小程序云开发笔记-初始化商城小程序

缘起&#xff1a;由于痴迷机器人&#xff0c;店都快倒闭了&#xff0c;没办法&#xff0c;拿出点精力搞一下店里的小程序&#xff0c;要多卖货才能活下来搞机器人&#xff0c;在此记录一下搞小程序的过程&#xff0c;要不然搞完又忘了。腾讯的云开发&#xff0c;前端和后端都有…

改变光标形状的多种方式

一&#xff0c;用css的方式进行添加属性&#xff1a; #div{cursor:pointer; } 二&#xff0c;使用js的方式改变光标的状态&#xff1a; 1 // 使用在元素的标签上的事件 2 // 第一种方式 3 onmouseover"this.style.cursormouseHand" 4 5 // 第二种方式 6 onmouseo…

Linux阻塞IO(高级字符设备二)

阻塞IO属于同步 IO&#xff0c;阻塞IO在Linux内核中是非常常用的 IO 模型&#xff0c;所依赖的机制是等待队列。 一、等待队列介绍 在 Linux 驱动程序中&#xff0c;阻塞进程可以使用等待队列来实现。等待队列是内核实现阻塞和唤醒的内核机制&#xff0c;以双循环链表为基础结…

C笔记:引用调用,通过指针传递

代码 #include<stdio.h> int max1(int num1,int num2) {if(num1 < num2){num1 num2;}else{num2 num1;} } int max2(int *num1,int *num2) {if(num1 < num2){*num1 *num2; // 把 num2 赋值给 num1 }else{*num2 *num1;} } int main() {int num1 0,num2 -2;int…