链表中没环就返回NULL 有就返回环的入口 三种基本思路: 1、快慢指针找到环内的一个node,然后从链表头開始。对于每个node,看它在不在环中 2、用map存一下訪问过的节点地址,看当前node的地址是否在map中 3、事实上。经过计算,对于1中,快慢指针相遇的地方,再開始以慢指针開始走。 还有
分类:
其他好文 时间:
2016-03-07 10:23:58
阅读次数:
135
思路:如果开始有两个指针指向头结点,一个走的快,一个走的慢,如果有环的话,最终经过若干步,快的指针总会超过慢的指针一圈从而相遇。 如何计算环的长度呢?可以第一次相遇时开始计数,第二次相遇时停止计数。 如何判断环的入口点?碰撞点p到连接点的距离=头指针到连接点的距离,因此,分别从碰撞点、头指针开始.....
分类:
其他好文 时间:
2016-01-22 21:13:35
阅读次数:
114
在Linked List Cycle题目中,使用了两个指针fast与slow检查链表是否有环,该题在此基础上,要求给出链表中环的入口位置,同样需要注意空间复杂度。...
分类:
其他好文 时间:
2015-09-17 17:37:40
阅读次数:
189
【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】
题目链接:http://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4?rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/que...
分类:
其他好文 时间:
2015-09-13 21:41:40
阅读次数:
154
题目
1、判断一个单链表是否带环
2、求取一个带环单链表的环的长度
3、求取一个带环单链表的环的入口
4、判断两个不带环单链表是否相交
5、求取两个不带环单链表的一个公共节点
这仅仅一个单链表是否带环可以拓展出这么多的问题,我们来一个一个解决
1、判断一个单链表是否带环。
思路
记得以前做过这个,可以用快慢指针,两个指针同时指向头结点,快指针一次走两个,慢指针一次走一个,...
分类:
其他好文 时间:
2015-08-19 00:39:18
阅读次数:
202
一、单链表结点的删除
0、删除单链表p指向的那个元素,(时间和空间复杂度尽量小)
二、单链表的存取
1、找出单链表的倒数第K个元素,(仅允许遍历一遍链表)
2、找出单链表的中间元素,(仅允许遍历一遍链表)
三、单链表与环的问题
3、判断单链表是否有环(6形状)?
4、如何找到环的入口?
5、如何知道环的长度?
6、带环链表的...
分类:
其他好文 时间:
2015-08-14 22:47:19
阅读次数:
259
题目:
一个链表中包含环,如何找出环的入口节点? 例如 1->2->3->4->5->6->(3) ; 的链表中,环的入口及诶到哪是节点 3。解析:
首先找到链表中的环:定义2个指针,一个快指针一次走2步,一个慢指针一次走1步,如果2个指针能够相遇,证明有环。
统计链表中环的长度:从相遇指针开始,固定 1 个指针,另一个指针从相遇指针走,当2个指针再次相遇时,即走了 1 圈,得到环的长度 l...
分类:
其他好文 时间:
2015-08-01 22:05:56
阅读次数:
130
快慢指针算法描述定义两个指针slow, fast。slow指针一次走1个结点,fast指针一次走2个结点。如果链表中有环,那么慢指针一次会再某一个时刻追上快指针(slow == fast)。如果没有环,则快指针会第一个走到NULL。实现结点定义如下:class Node {
public Node next;
public Object data; public static...
分类:
其他好文 时间:
2015-08-01 14:20:14
阅读次数:
141
链表中没环就返回NULL
有就返回环的入口
三种基本思路:
1、快慢指针找到环内的一个node,然后从链表头开始,对于每一个node,看它在不在环中
2、用map存一下访问过的节点地址,看当前node的地址是否在map中
3、其实,经过计算,对于1中,快慢指针相遇的地方,再开始以慢指针开始走,
另一方面,在链表的头部也用一个慢指针开始走,二者相遇的地方便是环的入口
(代码并未...
分类:
其他好文 时间:
2015-06-04 21:11:15
阅读次数:
170
初阶:给一个单链表,判断这个单链表是否存在环,如1->2->3->4->2是一个存在环的链表。要求使用O(1)的额外空间。
进阶:求出环的入口。同样要求O(1)的额外空间。...
分类:
编程语言 时间:
2015-05-12 15:47:01
阅读次数:
135