求两条链表有无交点和第一个交点

两条相交的单向链表,如何求他们的第一个公共节点 问题: 两个单向链表,可能存在公共节点。如何判断是否存在公共节点,并找出它们的第一个公共结点。 思想: 1. 如果两个链表相交,则从相交点开始,后面的节点都相同,即最后一个节点肯定相同; 2. 从头到尾遍历两个链表,并记录链表长度,当二者的尾节点不同,则二者肯定不相交; 3. 尾节点相同,如果A长为LA,B为LB,如果LA>LB,则A前LA-LB个先跳过,    然 阅读详情

一  判断交点: 遍历到最后,看为节点是否相同

二  第一个交点:如果 length(list1)>length(list2),则链表1 从length(list1)-length(list2)处开始遍历,链表2从开头开始遍历。比较每一个是否相等。第一个相等的就是结果。       length(list1)<ength(list2),反过来操作。相等都从头操作。

 

求单链表交点 本文首发在我的个人博客:https://jlice.top/p/7qhfm/。欢迎大家前去参观,么么哒~ 题目 今天面试时,面试官问了这样一个问题:两个单链表相交,怎么求交点。所谓相交,就是两个节点的next指针相同。 简单解法 一个简单的思路是:分别遍历这两个链表,并将这两个链表的节点分别保存到两个列表里,然后同步逆序遍历这两个列表,当出现不相同的元素时,则下一个元素就是这两个链表的交... 阅读详情

相关推荐

求相交链表的交点

若链表相交的话,求取他们的交点??? 首先看看链表相交的情况,如图: 解决这个问题的方法很多,下面我们介绍两种常见的方法: 方法一:   假设现在是两条不带环的链表相交,如图:   分别统计两条链表的长度s1和s2,假设s1大于s2,则我们让head1先走上s1-s2步,让后再让head2也出发,则它们的相遇点就是交点。

Sunnylunch-blog 1488

判断两个单链表是否相交及找到第一个交点

题目:给两个单链表,如何判断两个单链表是否相交?若相交,则找出第一个相交的节点。 这道题的思路和解法有很多,在这把这道题的解法做一个详细的总结。解这道题之前,我们需要首先明确一个概念: 如果两个单链表有共同的节点,那么从第一个共同节点开始,后面的节点都会重叠,直到链表结束。 因为两个链表中有一个共同节点,则这个节点里的指针域指向的下一个节点地址一样,所以下一个节点也会相交,依次类推。所以,若相

rotation博客 4万+

求两个单链表的交点

这个面试经常会碰到的题目,判断两个单链表是否相交。个人理解的也不是很深,零零散散的从网上找答案,并把所偶看到的整理了一下,希望对大家有帮助。 判断两个单链表是否相交共有三种情况: 1,两个单链表都没有环。 2,两个单链表中 一个有环,一个没有环。 3,两个链表都有环。 看第一种情况,连个单链表相交,只能是y型相交,不可能是x型相交,理由如下,有两个链表,La,Lb,他们的交点设为p吧,假

zzran的专栏 8616

求两个链表的第一个公共结点(既求两条单链表的交点)

题目:输入两条单链表,求它们的第一个公共结点。结点的定义如下: typedef struct Node { DataType data; struct Node* next; }Node,*pLinkList; 解题思路: 方法一:暴力法。拿出一条链表中的一个结点,然后在另一条链表中从前向后扫描,如果存在相同的结点,则此节点为第一个公共结点,否则,继续向后遍历。假设两条链表...

HanSion.Z 1276

寻找两个链表的交点

一.题目描述 已知链表A的头节点指针headA, 链表B的头节点指针headB,两链表相交,求两链表交点对应的节点。 二.题目要求 1.如果两个链表没有交点,则返回NULL 2.在求交点的过程中,不可以破坏链表的结构或者修改链表的数据域 3.可以确保传入的链表A和链表B没有任何环 4.实现算法尽可能使时间复杂度为O(n), 空间复杂度为O(1) 三. 方案一:使用set求交集...

weixin_40260504的博客 763

中国高质量夜间灯光数据

中国高质量夜间灯光数据是CnOpenData与吉林高分遥感应用研究院有限公司合作的数据库 ,基于多源夜间灯光卫星遥感影像,经过科学手段对数据进行降噪、修正、分析统计,以年度、月度为更新频率,以省市县三级行政区划作为统计单元,制作高质量夜间灯光数据。

Sunny9qx的博客 3307

如何判断两个链表是否相交?如果相交求交点

问题描述:一个比较经典的问题,判断两个链表是否相交,如果相交找出他们的交点。(注意两个单链表相交不会出现X型交叉——单链表,每个节点只有一个指针域)。第一种情况:两个链表均不含有环解题思路:1、直接法:采用暴力的方法,遍历两个链表,判断第一个链表的每个结点是否在第二个链表中,时间复杂度为O(len1*len2),耗时很大;顺序查询到第一个在第二个链表种的节点即是两个链表的交点。2、先遍历第一个链表...

Gandoph的博客 1万+

DDR4/LPDDR4与DDR5/LPDDR5的差别

最新的 DDR5 可支持单一芯片容量 64Gbit,最高容量上限可增加到 128GB,较 DDR4 提高了四倍;价格:随着规格提升,DDR5 价格也较 DDR4 高出逾 50%,可能成为业者导入的阻碍。但如前所述,包括 5G、机器学习(ML)等各式进阶应用中,DDR5 的整体效能、规格的提升,对相关业者来说仍具一定优势与吸引力。电源管理 IC(PMIC IC):电源管理芯片内建至 DDR5 内存中,除可提高讯号完整性及噪声辨识能力,还能更具效率与扩展性;DDR5 规格与效能整理。(来源:JEDEC)

flomingo1的专栏 9014

求链表是否有环和第一个交点

这道题做起来简单,但是证明比较麻烦。自己的证明很可能有错误,还望指正。   一 是否有环 (1)用追击法,一个指针每次前进1步,另一个指针每次前进2步。 设链表中不包括环的长度为L1,环的长度为L2. 假设走s步之后相交,等价于   式(1)(s-L1)mod L2 = (2s-L1)mod L2有解。即s步之后相交)(s-L1)mod L2 = (2s-L1)mod L2有解 由式(

crazyhacking的专栏 1250

面试提问:数据开发中如何通过指标拆解来指导SQL编写?(附拆解模板)

摘要:指标拆解是一种高效的数据分析方法,通过将复杂业务指标分解为可执行的原子指标,指导SQL查询的编写。核心步骤包括:明确指标定义、拆解原子指标、定位数据源、确定分组维度、构建中间表。文章提供了指标拆解模板和实际案例(如用户留存率计算),并总结了拆解带来的5大好处:逻辑清晰、易于调试、可复用、降低错误率、便于协作。最后强调"一定义、二拆解、三定位、四分步、五合并"的口诀,适用于数仓开发、BI报表等场景。

石榴姐yyds 266

【项目实战】DevOps制品管理之JFrog Artifactory介绍

JFrog Artifactory是一款领先的二进制软件制品仓库管理工具,由JFrog公司开发。

奶爸的编程之路,也就一周冷个三天 1352

求两条链表的交点

求两个相交链表的交点 //求两个相交链表的交点 //①、首先先判断链表是否有环---用快慢指针----当快指针能走到null,则可说明链表为单链表无环--反之则有环 //②、无环相交: //先走完两条链表---尾节点地址不一样一定不相交 //先让长链表 走 与短链表的差值 // 然后再让两个链表走一样的速度---每次一节点 //③、有环相交 //1、两个环的第一次入环节点一样---所以交点必然在环的前面---所以可以当

weixin_51713937的博客 1053

实战六十四:基于机器学习朴素贝叶斯的豆瓣Top250影评的情感分析与预测 附完整源码和数据

实战六十四:基于机器学习朴素贝叶斯的豆瓣Top250影评的情感分析与预测 附完整源码和数据

1563

leetcode-寻找两条无环链表的第一个交点(python)

思想: 1、遍历求两个链表的长度,并且找到尾节点 2、若尾节点不同,则无交点 3、否则,用长链表长度减去短链表长 4、先让长链表走差值长 5、两个链表一起往前走,第一个相同的地址即为交点位置 代码: class Solution(object): def getIntersectionNode(self, headA, headB): """ :type h...

weixin_40876685的博客 318

最新2026年《网络数据安全风险评估办法》条款解读

大型企业集团IT变革下的零信任安全体系建设方案(55页).pptx。以数据安全为核心的安全立体防御体系解决方案(41页).pptx。让数据安全合规地创造价值(15页 PPT).pptx。大型集团数据安全应急预案(57页).docx。数据安全治理与评估服务业务介绍.pptx。数据安全管理实践(17页).pptx。大数据安全架构设计方案.pptx。大数据安全规划总体方案.pptx。数据库安全综合治理方案.pptx。医疗数据安全建设方案.pptx。数据安全框架规划图.pptx。数据安全治理方案.pptx。

cdfunlove的博客 46

从 AccessControl.authorizationCheck 读懂 ABAP CDS 访问控制:默认策略、取舍边界与一线项目实战

摘要: 本文深入解析ABAP CDS视图中@AccessControl.authorizationCheck注解的核心功能与工程实践。该注解通过DCL角色实现行级数据过滤,提供三类能力:控制访问生效条件、约束语义一致性及管理特权访问。文章详述四种注解取值(#CHECK、#NOT_REQUIRED、#NOT_ALLOWED、#PRIVILEGED_ONLY)的适用场景与默认行为,并结合采购订单案例演示DCL与PFCG授权的落地步骤。同时指出访问控制的边界问题(如JOIN场景可能绕过过滤),并给出视图层级决策矩

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 260

有环单链表,求环长、链长;求两链表的交点

正是一个关于单链表的经典例题。即,给定一个有环的单链表,求环长、链长等。或者,给定一个单链表,判断是否有环? 可以遍历这个链表,将每一个节点存入一个有顺序的集合,同时判断当前节点是否在这个集合中出现,从而判断该链表是否有环以及求环长与链长。当时空间复杂度与时间复杂度都过大了。 另一个经典方法就是快慢指针,即两个指针同时从链表头开始走,快指针一次走2步,慢指针一次走1步。于是 假设这个有环链表的j...

背对星星和月亮 860

机器人控制基础:伺服驱动器的泄放电阻

摘要:伺服驱动器泄放电阻用于消耗电机减速或制动时产生的再生电能,防止母线电压过高损坏元件。其核心作用是将多余电能转化为热能,规避硬件损坏和停机风险。选型需关注功率、阻值和封装三大参数,功率应匹配再生能量,阻值需符合驱动器要求,封装应满足散热需求。可通过动态监测母线电压或静态检测电阻阻值来判断其是否正常工作。

start_up_go的博客 381

给定两个单链表,判断是否有交点,如果有则返回第一个交点

算法:得到两条链的长度m和n,再定义两个指针p1和p2,分别指向两条链的开头,如果m>n,则让p1先走m-n步,如果n>m,则让p2先走n-m步,然后两个指针再一起走,相遇的第一个点就是第一个交点,若不相遇则没有交点。(两个链表都无环) (相交的特征:只要两条链表相交,则从第一个交点开始后面的节点都相交) 注:还要就链表是否有环的情况进行分类讨论。 (1)如果一个有环一个无环则肯定不相交 (2)都有环但是两个链表不相交 (3)都有环且相交 有环情况...

m0_47560114的博客 457

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

判断两个链表是否相交,若相交,求交点。

首先我们来看一下单链表: 第一种情况:两个链表均不带环 判断两个不带环的链表是否相交,如果两个链表相交的话可如下图所示: 判断是否相交:由上图可知,如果两个不带环链表相交的话这两个不带坏链表的尾节点地址一定相同,所以我们只要各自遍历两个链表,判断其尾节点地址是否相同,如果相同则相交,否则不相交。 typedef struct SListNode { DataType data...

ty6693的博客 472

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

两个单链表,存在交点,求交点

/** *两个单链表有交点,用尽量高的效率查找到第一个交点 */ #include struct node { node* next; }; int get_length(node* head) { int sum=0; while(head) { ++sum; head=head->next; } return sum; } node* find_common_

leewon1988的专栏 721

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

求两个单向无环链表的第一个公共交点

题目描述:给定两个无环链表,长度分别为n和m,求它们的第一个交点。   分析:如果两个链表有公共节点,也就是说两个链表从某一点开始,它们的next指针都指向同一个节点,但由于是单 向链表,那么每个节点都只有一个next指针,所以从第一个公共节点开始,之后它们所有的节点都是重合的,那么它 们的拓扑形状就像Y字型。   既然这样,那么我们可以这样做,如果它们的尾节点相同,说明这两个链表是相

渡辺麻友 1356

求两个链表的交点(C++)

方法一:利用C++的set容器求交集 思路 将链表A的元素放入到set集合中 遍历链表B,如果链表B的某个结点在set集合中,返回该节点 代码实现 struct ListNode { int val; ListNode* next; ListNode(int x) :val(x), next(NULL) {} }; class Solution1//用set容器求解 { public...

weixin_45801057的博客 697

C语言的单链表求交点

单链表求交点,问题如下: 使用o(1)的空间复杂度,求两个链表相交的时候的交点,这个思想就类似于使用o(1)的空间复杂度和o(n)的时间复杂度来求链表的第k个节点。 过程如下: 获取两个链表的长度 将较长的链表移动和短链表长度差值的位置 移动后两个链表长度一样,然后一起移动,这样就知道节点相等的时候链表相交 算法实现如下:get_intersection_node函数 /*获取交叉链表的节...

天行健,地势坤 921
上一篇: 笔试面试之系统网络
下一篇: 求链表是否有环和第一个交点
crazyhacking
博客等级 码龄15年 299粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值