链表相交需要判断有无循环,无循环直接找最后一个节点进行比较,有循环找某个循环点然后看看另一条是否也有这个点。

找循环链表入口比较牛逼:
在p2和p1第一次相遇的时候,假定p1走了n步,环路的入口是在h步的时候经过的,那么有
  p1走的路径: h+c = n;         c为p1和p2相交点,距离环路入口的距离
  p2走的路径: h+c+k*r = 2*n;    r为环路的周长,k是整数
显然,如果从h+c点开始,p1再走n步骤的话,还可以回到h+c这个点
同时p2从头开始走的话,经过n步,也会达到h+c这点
显然在这个步骤当中p1和p2只有前h步走的路径不同,所以当p1和p2再次重合的时候,必然是在链表的环路入口点上。

转载于:https://www.cnblogs.com/yutoulck/p/4024844.html

链表相交以及找循环链表入口相关推荐

  1. 快慢指针判断单向链表是否有环及找环入口

    前言 关于快慢指针找环入口的这个问题,之前巴特跟我聊到过,印象比较深,今晚看学长在做的面试题,里面就出现了这个小知识. 发现有些东西不经意间就会用到,于是便出现此文.以后要努力做到善于总结,乐于总结. ...

  2. 使用OC实现单链表:创建、删除、插入、查询、遍历、反转、合并、判断相交、求成环入口...

    一.概念 链表和数组都是一种线性结构,数组有序存储的,链表是无序存储的. 数组中的每一个元素地址是递增或者递减的关系,链表的每一个节点的地址没有此规律,它们是通过指针的指向连接起来. 链表种类:单链表 ...

  3. 链表是否带环、环入口、环长度、链表相交问题分析与总结

    关于链表的知识总结,参考原博客:http://www.cnblogs.com/hellogiser/p/linked-list-loop-and-intersections.html 一.链表是否带环 ...

  4. 判断链表是否相交并找出交点

    问题概述 单链表定义如下: public class ListNode {int val;ListNode next;ListNode(int x) {val = x;next = null;}} 编 ...

  5. 长风破浪会有时:单向链表、双向链表和循环链表图文解析

    链表的种类有很多.我们常常会用到的链表有:单向链表.双向链表和循环链表. 链表不同于数组的地方在于:它的物理存储结构是非连续的,也就是说链表在内存中不是连续的,并且无序.它是通过数据节点的互相指向实现 ...

  6. 转:链表相交问题 详解

    源地址:http://blog.163.com/bbluesnow@126/blog/static/27784545201251051156817/ 链表相交问题 2012-06-10 17:15:3 ...

  7. 求链表相交时的交点(C语言)

    //链表相交时的交点 PSListNode IntersectionNode(PSListNode pL1, PSListNode pL2) {int count1 = 0;int count2 = ...

  8. 如何判断链表有环、如何判断两个链表相交

    如何判断单链表是否存在环 有一个单向链表,链表当中有可能出现"环",就像题图这样.如何用程序判断出这个链表是有环链表? 不允许修改链表结构. 时间复杂度O(n),空间复杂度O(1) ...

  9. 代码随想录Day04 | LeetCode24. 两两交换链表中的节点、LeetCode19. 删除链表的倒数第N个节点、LeetCode160. 链表相交、LeetCode142. 环形链表Ⅱ

    LeetCode24. 两两交换链表中的节点 力扣题目链接 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 示例 ...

最新文章

  1. MaxCompute Studio使用心得系列7—作业对比
  2. 基于jQuery很牛X的批量上传插件
  3. Java 8中的默认方法(Defender方法)简介
  4. oracle的等保,Oracle等保测评相关指令
  5. 【Python】五子棋项目记录
  6. IDEA或Webstorm设置Terminal终端字体大小
  7. 研究生最忌讳的几点是什么?读研期间你该主动做什么?
  8. 一些常用的前端基础操作
  9. Seay源代码审计系统
  10. C/C++大数运算库介绍及安装
  11. DATEDIF 函数(转)
  12. 区块链银行应用探索(Hyperledger fabric)
  13. jsp中打开新的html网页,jsp中用window.open()打开新页面的相关设置
  14. kaggle 入门:逻辑回归应用之Kaggle泰坦尼克之灾
  15. LABVIEW 虚拟键盘 触摸键盘 中英文输入 支持WIN10 WIN7
  16. 在IPhone上添加邮箱(163示例)
  17. 机器学习和深度学习综述
  18. 如何下载npm离线安装包
  19. 30句感悟人生的格言名言
  20. 如何修改textfield的 return 键的类型

热门文章

  1. 人民大学云计算编程的网上评估平台--解题报告 1004-1007
  2. 重构-改善既有代码的设计:简化函数调用 (八)
  3. 汇编语言--CMOS RAM芯片
  4. golang的select
  5. linux系统的交换分区怎么分配?
  6. centos部署openstack--网络规划(openvswitch的安装)
  7. MYSQL管理之主从同步管理
  8. Android UI(继承控件)--PopupWindow设置动画
  9. linux定时任务crontab
  10. 参加Google™ Code Jam - 中国编程挑战赛(2)