快慢指针的妙用
1.判断是否有环
站在用户的角度思考问题,与客户深入沟通,找到天峻网站设计与天峻网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、成都网站设计、企业官网、英文网站、手机端网站、网站推广、申请域名、网络空间、企业邮箱。业务覆盖天峻地区。
通常情况下单链表的尾节点是为NULL的,如果一个单链表存在环必然会使尾节点的指针域
存放的是其中某个节点的地址,这样就形成了环状结构.
在环中fast走两步,slow走一步,总会在某个时候,fast=slow
bool hasCycle(SLinkNode *L){ SLinkNode*p,*q; p=q=L; //如果链表中只存在一个节点或者为空链表,则没有环 if(L==NULL||L->next==NULL) return false; while(q!=NULL&&q->next!=NULL){ q=q->next->next; p=p->next; if(p==q)//快慢指针相遇则存在环 return true; } return false; }
当前文章:快慢指针的妙用
本文路径:http://myzitong.com/article/dsoipop.html