这道题emmm,难度相对来说很大额。

主要是要分成三种情况来考虑:

1. 两个链表都无环;

2. 两个链表都有环;

3. 一个有环一个无环,这种情况是不用 考虑的,一定没有交点(姥姥记住:单链表仅有一个指针,你脑补的情况都会破坏这个 要求。)

其中2又可以分为三种情况:如下:

而在判断它是否有交点的时候,前提是要先判断其是有环还是无环(其中这里有两种方法进行判断,第一种方法用哈希表,相对 来说比较容易,第二种利用两个指针来比较,程序都有相应的实现方法)

下面直接附上程序:

程序里面也有相应的解释和说明:

通过哈希表来判断该链表是有环还是无环

通过两个指针来判断链表是有环还是无环

通过哈希表来判断两个无环的链表是否相交

不用哈希表也可以实现:找出两个无环的链表是否相交,只不过要设计,要有经验

当两个链表都有环的时候,情况可能相对来说复杂一点,主要有三种情况:

有兴趣的同学可以一起来探讨~

两个单链表相交的一系列问题----0_0相关推荐

  1. 两个单链表相交的一系列问题

    两个单链表相交的一系列问题 在本题中,单链表可能有环,也可能无环.给定两个单链表的头节点 head1 和 head2,这两个链表可能相交,也可能 不相交.请实现一个函数,如果两个链表相交,请返回相交的 ...

  2. 左神算法:两个单链表相交的一系列问题(链表是否有环 / 两无环链表是否相交 / 两有环链表是否相交)

    本题来自左神<程序员代码面试指南>"两个单链表相交的一系列问题"题目. 题目 在本题中,单链表可能有环,也可能无环.给定两个单链表的头节点 head1 和 head2, ...

  3. 两个单链表相交的一系列问题-Java

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net package live.every.day.Pro ...

  4. 算法学习18-两个单链表相交的一系列问题

    两个单链表相交的一系列问题 [题目] 在本题中,单链表可能有环,也可能无环.给定两个单链表的头节点 head1和head2,这两个链表可能相交,也可能不相交.请实现一个函数, 如果两个链表相交,请返回 ...

  5. 算法题:求两个单链表相交的第一个节点

    目录 一.题目 思路 代码 二.总结 一.题目 #include <iostream> #include <stack> using namespace std; //链表结点 ...

  6. 链表问题11——两个单链表相交的系列问题(四):总结

    题目 请实现一个函数,如果两个链表相交,请返回相交的第一个节点,如果不相交,返回null即可.链表可能有环或无环. 要求 如果链表1的长度为N,链表2的长度为M,时间复杂度达到O(M+N),额外空间复 ...

  7. 链表问题11——两个单链表相交的系列问题(三):判断两个有环链表是否相交

    题目 判断两个有环链表是否相交,相交则返回第一个相交节点,否则返回null 在考虑此问题时,根据前面几篇文章的解法,我们已经得到了各自链表的入环节点,分别为loop1和loop2 思路 以下是问题三的 ...

  8. 链表问题11——两个单链表相交的系列问题(二):找到两个无环链表的交点

    题目 判断两个无环链表是否相交,相交则返回第一个相交节点,否则返回null 思路 分别遍历链表1和链表2,最后一个节点分别即为end1和end2,长度分别记为len1和len2 如果end1不等于en ...

  9. 链表问题11——两个单链表相交的系列问题(一):找到有环链表的环入口节点

    题目 判断一个链表是否有环,如果有,则返回第一个进入环的节点,没有则返回null. 思路 如果一个链表没有环,那么遍历链表一定可以遇到链表的终点:如果链表有环,那么遍历链表就永远在环里转下去了.如何找 ...

最新文章

  1. 资源 | AI、神经网络、机器学习、深度学习以及大数据学习备忘单
  2. [翻译完成] Pi+Raspbian+CGMiner+TightVNC+WIFI五合一矿机超级教程
  3. Spring Boot 入门之基础篇(一)
  4. LeetCode 55. 跳跃游戏 中等难度
  5. java 对象传递给方法_java – 将对象值传递给方法
  6. ping连接linux无法访问目标主机,无法访问目标主机是什么情况【解决方法】
  7. 《深入理解C++11:C++ 11新特性解析与应用》——3.2 委派构造函数
  8. sort函数——利用函数实现快速排序c++
  9. 推荐6个好用到爆的Pycharm插件
  10. 【Python爬虫】Requests库网络爬虫实战
  11. IT职场人生系列之十二:语言与技术I
  12. windows server 2003 远程桌面最大连接数调整与windows 2008远程桌面后,本地帐号自动锁定...
  13. stm32怎么入门?数电模电单片机先学哪个?
  14. c语言试题1答案,c语言试题1有答案
  15. 【转】通过《淘宝这十年》总结的脑图
  16. 打开CMD(Windows命令行)的几种方式
  17. 5.stm32L476在freeRTOS下使用低功耗
  18. Java 中Calendar的使用
  19. TensorFlow 卷积神经网络之猫狗识别(二)
  20. python 函数与部分使用示例

热门文章

  1. Docker部署SpringBoot的两种方法,后一种一键部署超好用!
  2. linux localhost的修改
  3. python基本的信号与槽函数的使用 信号发射 槽函数接收
  4. QT5 C++编写B类IP地址计算第一个可用IP地址、最后一个可用IP地址、网络号、广播地址、子网数、主机数
  5. 服务器系统上1068错误,错误1068,详细教您启动网络服务错误1068怎么解决
  6. 无法打开caffe.pb.h, no such file or directory错误
  7. java实现多对多关系的方法_Hibernate一对多关联双向关联代码实现分享
  8. java mvc中重复提交_SpringMVC之——防止重复提交表单的方法(一)
  9. oracle报28003,【翻译自mos文章】运行utlpwdmg.sql之后报ORA-28003, ORA-20001, ORA-20002, ORA-20003, ORA-20004 错误...
  10. python能制作游戏吗_没有Python不能做的游戏,这些游戏都可以做