如果链表可能有环,判断两个链表是否相交?
来源:互联网 发布:共产主义社会 知乎 编辑:程序博客网 时间:2024/05/19 19:58
题目来源:编程之美 《3.6 编程判断两个链表是否相交?》的扩展问题。
上网查找了写资料现做个总结。
可以分两步:(1)判断两个链表是否有环?若有环,入口点是什么?
(2)判断是否相交?
第一个问题的典型解法为设置两个指针p1和p2,p1每次走一步,p2每次走两步,若有环,则p1和p2一定会相遇,否则没有环。当p1和p2相遇时,另p2回到链表起始处,每次走一步和p1同时移动,则两者再次相遇时就是入口点。
第二个问题分一下几种情况:
(1)若两个链表均无环,若相交则两链表的尾节点必定相同。
(2)若一个有环,一个无环,则必不相交。
(3)若两者均有环,则两者的环入口点若相同则相交,否则不相交。
对于情况(1)若想求相交点,可以将两链表的长度算出结果为s1,s2。用长的减去短的得到差值d,将长的先移动d步,然后两者一起移动,则相遇点为相交点。
ps:代码就不放了,写的太烂。
0 0
- 如果链表可能有环,判断两个链表是否相交?
- 7.微软亚院之编程判断俩个链表是否相交(如果链表可能有环)
- 判断单链表是否有环,如果有找出环的入口位置=>求两个相交链表的交点
- 判断两个有环的链表是否相交
- 判断两个链表是否相交,如果相交如何找到第一个相交结点。
- 判断单链表是否有环 判断两个链表是否相交
- 判断单链表是否有环,判断两个链表是否相交
- 判断单链表是否有环并找到入口处以及判断两个单向链表是否相交
- 题目:①判断一个单向链表是否有环,如果有环则找到环的入口节点。 ②判断两个单向链表是否相交,如果相交则找到交点节点。
- 17_7_16:判断两个链表是否相交,若相交,求交点。如果链表带环呢?
- 判断两个单链表(可能有环)是否相交
- 编程之美-编程判断两个链表(可能含环)是否相交以及相交的第一个结点
- 判断两个链表是否相交、一个链表是否有环
- 已知有两个链表,判断它们是否相交,若相交求其第一个公共节点
- 判断两个链表是否相交
- 判断两个链表是否相交
- 7. 判断两个链表是否相交
- 判断两个链表是否相交
- 关于MFC中添加对话框类后类视图(class view)无显示
- STM32初学之Sys_Tick配置
- 基于sklearn的特征选择方法
- 扩展GCD
- 认识vim
- 如果链表可能有环,判断两个链表是否相交?
- 16.Java IO: PipedOutputStream && Java IO: PipedOutputStream
- Java-单机版的书店管理系统(练习设计模块和思想_系列 二 )
- 简单斐波那契数列
- struts2中如何使用servlet的总结
- oceanbase每日合并
- HDOJ 3336 Count the string
- Logistic回归
- poj 3522