判断一个单向链表中是否有环

来源:互联网 发布:百度seo推广怎么收费 编辑:程序博客网 时间:2024/06/07 20:32

判断一个单向链表中是否有环

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

实现如下:

struct listNode{    int  data;    struct listNode *next }list; int find_cicle(list * head){    listNode *pfast = head;    listNode *pslow = head;    if(pfast==null){        return -1    }    while(pfast&&pfast->next){        pfast=pfast->next->next;        pslow=pslow->next;        if(pfast==pslow){            return 1;        }    }}
0 0
原创粉丝点击