在做这道题的时候看到一个博客写的很清楚,说到“学以致用”。近期就是在刷题、刷题,因为上班前还有一段时间,不知道做什么,乱七八糟的看看这个看看那个。这个学以致用点醒了我,每次刷题就是很机械,这道题做完就做完了(不是做完,是从网上找到然后编程通过),自己根本没有去思考,学而不思则罔啊~~~~决定做完要好好思考,尽管是复制黏贴来的。
1、有什么用
这个题目有什么用?两个链表相交,一旦程序释放了链表L1的所有节点,而L2的使用者并不知道,会造成麻烦。
2、题目分析
拿到题目,我完全不会,或者说思考了一小会还是不会。时间复杂度O(n),空间复杂度O(1),不得改变原来链表的,所有的这一切条件限制了我的想象!我本来想的是链表反转之后,从尾部到头部检索,然而链表不能变。
3、网上的答案
3.1 环的入口问题
如果两个链表是相交的,那么将第二个链表接到第一个链表的后面,则一定存在环。接下来就是找环的入口问题了~~~
3.1 将两个链表变为一样长
长的链表走到与短的链表一样的长度,然后在查找,这个方法也很厉害~~