关于链表中是否带环并且找到环的入口点

面试题一:判断链表是否带环

创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、做网站、榆社网络推广、小程序制作、榆社网络营销、榆社企业策划、榆社品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供榆社建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

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;//无环
}

面试题二:找到环的入口点

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;
}


网站名称:关于链表中是否带环并且找到环的入口点
分享网址:http://scyanting.com/article/gcdeds.html