判断链表中是否有环存在

来源:互联网 发布:pdf提取软件 编辑:程序博客网 时间:2024/05/21 11:02

思路:
用两个指针,pSlow,pFast,就是一个慢一个快
慢的一次跳一步,
快的一次跳两步,
什么时候快的追上慢的了就表示有环(pSlow == pFast )。
实现如下:

struct  listtype{    int data;    struct listtype * next;}list;int find_cicle(list *head){     list *pFast=head;     list *pSlow=head;     if (pFast==NULL)     {          return -1;      }     while(pFast && pFast->next)    {        pFast=pFast->next->next;        pSlow=pSlow->next;        if (pFast==pSlow)       {           return 1;        }     }     return 0}
0 0