判断链表中是否有环存在

转载 2015年07月10日 17:34:45

思路:
用两个指针,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
}

快慢指针判断单链表中是否存在环,存在返回环的起点的值

快慢指针判断单链表中是否存在环,存在返回环的起点的值

数据结构——判断链表是否有环

今天看到这么一道面试题,问如何判断一个链表是否

leetcode OJ 判断单链表中是否有环

单链表的结构体为:

判断单循环链表中是否存在环

#include #include typedef struct Node{ int data; struct Node* next; }Node; typedef struct Node* L...

单链表中判断是否存在环

转自http://blog.csdn.net/hitulric/article/details/6646121 有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节...
  • wdqbupt
  • wdqbupt
  • 2011年10月24日 05:23
  • 267

链表面试题(十二)---判断两个都不带环的链表是否相交

一、结构体定义typedef int DataType;typedef struct ListNode//定义结点 { DataType data; struct ListNode* ...

判断链表中是否有环

单向链表中有环的话,如果我们对此链表进行遍历,则将无穷尽。因此有必要判断一个单向链表是否有环。 假如一个单向链表中存在环,如下图:(一个小矩形代表链表中的一个节点) 虚线箭头代表中间有无数节点。 ...

判断单向链表中是否有环并确定开始位置

    第一个问题,判断单向链表中是否有环。网上搜到的方法,步长法,两个指针p1和p2,分别以步长1和2开始遍历链表,如果p2追上了p1,则说明存在环路。    p2每次走2步,p1每次走1步,如果没...
  • lilypp
  • lilypp
  • 2011年01月09日 01:26
  • 2295

判断循环链表是否有环

判断一个单向链表是否有环。(指向表头结点的指针为head) 方法一: (1)用两个指针p1和p2分别指向表头结点,即p1=p2=head (2...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:判断链表中是否有环存在
举报原因:
原因补充:

(最多只允许输入30个字)