如何判断两个链表是否相交,假设两个链表都没有环?
首先,很多同学会存在一个误区,认为两个链表相交应该这样的。
如果把它用结点的形式来表示就这样的。
很显然,相交的这个结点的next指针既指向了这个这个结点,又指向了这个结点,明显不科学。
真正相交的链表,应该是这样的。
如果两个链表相交,那么一定有重合的结点,所以可以逐个判断第一个链表里面的结点是否在第二个链表中,这种办法可行,就是效率太低,放在笔试题中往往时间复杂度满足不了。
我们稍微分析一下就会发现,相交的两个链表,他们的最后一个结点一定是重合的。
所以只要让第一个链表的指针指向最后一个结点,第二个链表的指针也指向最后一个结点,判断这两个结点是否相同,就能解决问题。
这个时候,往往面试官会接着问,如何找出相交的那个结点。
刚才的方法只适用于判断是否相交,如果想找出相交的结点,好像不太容易。
我们得换个方法,既能判断是否相交,又能找出相交的那个结点。
如果两个链表的长度一样,只要同时移动指针,最先相等的那个结点一定就是相交的结点。
所以可以先计算两个链表的长度差,然后先移动一个指针,保证长度一样后,再同时向后走。代码也没什么难度,直接附上。
邬贺铨:5G催生更多新应用,推进智慧发展和数字化转型
高性价比电动牙刷推荐||国产NANK/南卡-Shiny声波牙刷测评
ITC推出防水紧凑型插头插座连接器
激光雷达传感器发展前景如何?
水牙线好用吗 口腔清洁再添新成员
如何判断两个链表是否相交,假设两个链表都没有环?
OST和PST文件的区别
位置触发哪家强,TF-LC02在前方
三星在日本设先进芯片封装研究中心,瞄准先进封装市场
简单为大家讲解一下不出油低温热固胶技术
一个简单的太阳能电池充电器电路
如何利用RF参考模块加速OEM产品设计实现
自编一个嵌入式与STM32单片机调试小工具
特斯拉竞争对手有望早于Cybertruck推出电动皮卡
数据放大电路
通信领域的散射通信是什么
格科微低功耗4K图像传感器GC8613可实现星光级夜视全彩成像
基于LDR6023C USB Type-C PD控制芯片的领夹麦克风快充方案
热风焊台的使用方法和流程介绍
智能指纹锁的原理配置结构与功能详述