码迷,mamicode.com
首页 > 其他好文 > 详细

判断单链表有闭环

时间:2015-07-07 16:22:34      阅读:2517      评论:0      收藏:0      [点我收藏+]

标签:

有如下数据结构

class Node
{
    public int Value { get; set; }

    public Node Next { get; set; }
}

  

现有一个Node node对象,表示一个单向链表,判断这个单向链表是否有环

public bool IsCricle(Node node)
{
    Node fast = node;
    Node slow = node;
    while (node.Next != null)
    {
        slow = slow.Next;
        fast = fast.Next;
        if (fast != null && fast.Next != null)
            fast = fast.Next;
        else
            return false;
        node = node.Next;
        if (fast == slow)
            return true;
    }
    return false;
}

 使用两个指针,快的指针每次走两个节点,慢的指针每次走一个节点,如果有环,快的指针必然会在某个时刻与慢的指针指向同一个节点。

 

判断单链表有闭环

标签:

原文地址:http://www.cnblogs.com/alex09/p/4626997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!