相交链表(给你两个链表,找出它们的第一个公共结点)的实现与讲解

一:题目

二:思路讲解

1:应该是先判断是否相交。

2:相交就计算出相交前的两条链表的长度差距

3:让长的那一条链表先走长度的差距,这样会距离交点的距离相等,然后再对两条链表的节点对应着去比较。

第一步:判断是否相交

两个链表如果相交,他们的尾节点一定相同,因为,一但有一个相交节点,比如图中的c1,那之后的链表一定是一致的,因为一个节点只能指向一个节点,所以尾节点相同则两个链表一定相交! 

第二步:计算长度差距,并让长的链表往后走差距长度就一样长了

因为:长度的差距一定是在相交节点之前就决定了的,因为相交节点之后的链表完全相同。

 代码展示:

注意:

1:lenA为什么为1,因为while(curA->next)只能让cur停留在尾节点上,所以尾节点并没有经过,lenA也少一个+1,lenB同理。

那为什么不while(curA) 呢,这样lenA就是正确的,因为下面的尾节点比较的时候,curA和curB已经来到了尾节点的后一个节点,这样的话无法比较尾节点,除非在计算长度的时候,还要保留前一个节点的指针,这样比较麻烦,所以宁愿lenA,lenB赋值为1.

2:abs函数为计算两个值的差值的绝对值

3:longlist  就是我们希望的长的链表, shortlist就是我们希望的短的链表

4:最后出循环的时候,代表两个节点相同了,这时候返回longlist和shortlist都可以

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

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

相关文章

KaiwuDB 参编的《分析型数据库技术要求》标准正式发布

近期,中国电子工业标准化技术协会正式发布团体标准《分析型数据库技术要求》(项目号:T-CESA 2023-006)。该标准由中国电子技术标准化研究院、KaiwuDB(上海沄熹科技有限公司) 等国内 16 家企业联合起草&…

C#开发的网络速度计 - 开源研究系列文章 - 个人小作品

上次发布了一个获取网络速度的例子( https://www.cnblogs.com/lzhdim/p/18167854 ),就是为了这次这个例子。用于在托盘里显示网络速度的图标,并且能够显示网络速度。下面就介绍一下这个小应用的源码。 1、 项目目录; 2、 源码介绍&#xff1b…

javac编译web项目中的src

对于单个文件的且不引用其他类文件的java源码用javac编译大家都很熟悉即 javac hello.java, 服务器未安装idea,现在在服务器里面直接编译src目录 1 idea项目结构如下 2 web目录为最终部署的代码 WEB-INF下面没有 classes 目录 3 使用javac 编译src javac -encod…

Python中的数据可视化:阶梯图matplotlib.pyplot.step()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 Python中的数据可视化: 阶梯图 matplotlib.pyplot.step() [太阳]选择题 matplotlib.pyplot.step()的功能是? import matplotlib.pyplot as plt import numpy as…

Python | Leetcode Python题解之第75题颜色分类

题目&#xff1a; 题解&#xff1a; class Solution:def sortColors(self, nums: List[int]) -> None:n len(nums)p0, p2 0, n - 1i 0while i < p2:while i < p2 and nums[i] 2:nums[i], nums[p2] nums[p2], nums[i]p2 - 1if nums[i] 0:nums[i], nums[p0] num…

高效视频剪辑:批量剪辑添加srt字幕,快速制作专业视频

在视频制作过程中&#xff0c;字幕扮演着至关重要的角色&#xff0c;它们不仅能增强观众对视频内容的理解&#xff0c;还能提高视频的观感体验。然而&#xff0c;手动为每一个视频添加字幕是一项既耗时又繁琐的任务。现在有了云炫AI智剪和技巧&#xff0c;我们可以轻松地实现批…

fabric搭建生产网络

fabric搭建生产网络 一、生成组织结构与身份证书 解包 hyperledger-fabric-linux-amd64-2.5.0.tar.gz 1.1、crypto-config.yaml配置文件 ./bin/cryptogen showtemplate > crypto-config.yaml 将crypto-config.yaml内容修改为&#xff1a; # -------------------------…

Java的事件处理机制

Java事件处理机制 Java事件处理是采取“委派事件模型”。当事件发生时&#xff0c;产生事件的对象&#xff0c;会把此“信息”传递给“事件的监听者”处理&#xff0c;这里所说的“信息”实际上就是java.awt.event事件类库里某个类所创建的对象&#xff0c;把它称为“事件的对…

偏微分方程算法之混合边界条件下的差分法

目录 一、研究目标 二、理论推导 三、算例实现 四、结论 一、研究目标 我们在前几节中介绍了Poisson方程的边值问题&#xff0c;接下来对椭圆型偏微分方程的混合边值问题进行探讨&#xff0c;研究对象为&#xff1a; 其中&#xff0c;为矩形区域&#xff0c;为上的连续函数…

Flink 部署模式

目录 概述 部署模式 会话模式&#xff08;Session Mode&#xff09; 单作业模式(Per-Job Mode) 应用模式(Application Mode) 运行模式&#xff08;资源管理模式&#xff09; Standalone运行模式 会话模式部署 应用模式部署 Yarn运行模式 会话模式部署 单作业模式部…

电脑设置在哪里打开?Window与Mac双系统操作指南

随着科技的不断发展&#xff0c;电脑已经成为我们日常生活和工作中不可或缺的一部分。然而&#xff0c;对于许多初学者来说&#xff0c;如何找到并熟悉电脑的设置界面可能是一个挑战。特别是对于那些同时使用Windows和Mac双系统的用户来说&#xff0c;更是需要一篇详尽的指南来…

景源畅信电商:抖音小店开店的步骤有哪些?

在移动互联网高速发展的今天&#xff0c;利用短视频平台进行商品营销已成为一种潮流。抖音作为其中的佼佼者&#xff0c;吸引了无数商家纷纷入驻&#xff0c;希望通过这个巨大的流量池实现产品推广和销售。然而&#xff0c;想要在抖音上开设一家小店并非想象中那么简单&#xf…