顺心意

----------------------------------------------------------------------------------------成长中的菜鸟...

判断链表中是否有环存在

思路:
用两个指针,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
}
阅读更多
文章标签: 单链表是否存在环
上一篇逆序输出问题
下一篇使用两个栈实现堆
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭