快慢法判断单链表中是否有循环链表

 我来答
猥琐哥9Tw
2013-10-17 · TA获得超过174个赞
知道答主
回答量:126
采纳率:66%
帮助的人:118万
展开全部
题目:写个算法,判断在一个单向链表中是否存在循环链表。有个经典的算法就是解决这个问题的,好象是叫快慢法.他的原理是,如果A,B两人从同一地点出发,B的速度大于A,那么如果存在一个环的话,B和A肯定是能再见面的.bool IsLoop( link* head){link* s = head; //移动缓慢的指针
link* f = head; //移动快速的指针do{if( s == NULL ) return (false );
s = s->next; //一次向前移动一个
if( f== NULL ) return (false );
f = f->next;
if( f== NULL ) return (false );
f = f->next; //一次向前移动2个
} 可以参见《C专家编程》的附录。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式