找到两个链表的相交起始节点

在做这道题的时候看到一个博客写的很清楚,说到“学以致用”。近期就是在刷题、刷题,因为上班前还有一段时间,不知道做什么,乱七八糟的看看这个看看那个。这个学以致用点醒了我,每次刷题就是很机械,这道题做完就做完了(不是做完,是从网上找到然后编程通过),自己根本没有去思考,学而不思则罔啊~~~~决定做完要好好思考,尽管是复制黏贴来的。

1、有什么用

这个题目有什么用?两个链表相交,一旦程序释放了链表L1的所有节点,而L2的使用者并不知道,会造成麻烦。

2、题目分析

拿到题目,我完全不会,或者说思考了一小会还是不会。时间复杂度O(n),空间复杂度O(1),不得改变原来链表的,所有的这一切条件限制了我的想象!我本来想的是链表反转之后,从尾部到头部检索,然而链表不能变。

3、网上的答案

3.1 环的入口问题

如果两个链表是相交的,那么将第二个链表接到第一个链表的后面,则一定存在环。接下来就是找环的入口问题了~~~

3.1 将两个链表变为一样长

长的链表走到与短的链表一样的长度,然后在查找,这个方法也很厉害~~


你可能感兴趣的:(LeetCode)