关于链表中是否带环和找到环的入口点
2016-09-02 22:33
197 查看
面试题一:判断链表是否带环
<span style="font-size:18px;"><strong style="background-color: rgb(255, 255, 255);">int FndLoop(pLinkList list)
{
pLinkNode fast=list->pHead;
pLinkNode slow=list->pHead;
assert(list);
while(fast!=NULL && fast->next!=NULL)
{
slow=slow->next;
fast=fast->next->next;
if( fast!=NULL && slow==fast)
{
return 1;//有环
}
}
return 0;//无环
}</strong></span>
面试题二:找到环的入口点
<span style="font-size:18px;"><strong>pLinkNode FndLoopNode(pLinkList list)
{
pLinkNode fast=list->pHead;
pLinkNode slow=list->pHead;
assert(list);
while(fast!=NULL && fast->next!=NULL)
{
slow=slow->next;
fast=fast->next->next;
if( fast!=NULL && slow==fast)
{
break;
}
}
slow=list->pHead;
while(slow!=fast)
{
slow=slow->next;
fast=fast->next;
}
return slow;
}</strong></span>
<span style="font-size:18px;"><strong style="background-color: rgb(255, 255, 255);">int FndLoop(pLinkList list)
{
pLinkNode fast=list->pHead;
pLinkNode slow=list->pHead;
assert(list);
while(fast!=NULL && fast->next!=NULL)
{
slow=slow->next;
fast=fast->next->next;
if( fast!=NULL && slow==fast)
{
return 1;//有环
}
}
return 0;//无环
}</strong></span>
面试题二:找到环的入口点
<span style="font-size:18px;"><strong>pLinkNode FndLoopNode(pLinkList list)
{
pLinkNode fast=list->pHead;
pLinkNode slow=list->pHead;
assert(list);
while(fast!=NULL && fast->next!=NULL)
{
slow=slow->next;
fast=fast->next->next;
if( fast!=NULL && slow==fast)
{
break;
}
}
slow=list->pHead;
while(slow!=fast)
{
slow=slow->next;
fast=fast->next;
}
return slow;
}</strong></span>
相关文章推荐
- 关于链表中是否带环并且找到环的入口点
- 关于链表中是否带环和找到环的入口点
- 判断链表是否带环,若带环,找到环的入口点
- 判断链表是否带环,若带环求环的长度,若带环求环的入口点
- 判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 判断链表是否有环及找到环的入口节点
- 单链表是否有环并如何找到环入口
- 剑指offer--判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 测试单链表是否有环,并找到入口
- 判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 单链表是否有环并如何找到环入口
- 单链表是否有环并如何找到环入口
- 判断链表是否带环,以及环的入口
- 链表是否带环/求环的长度/求环的入口点
- 判断链表是否有环 、 找到环的入口节点
- 用快慢指针判断单链表环,找到环入口 扩展到判断两个链表是否相交
- 单链表是否有环并如何找到环入口
- 如何找到带环链表的入口节点?
- 题目:①判断一个单向链表是否有环,如果有环则找到环的入口节点。 ②判断两个单向链表是否相交,如果相交则找到交点节点。