static bool IfCircle(SingleLinkNode node)
        {           
            SingleLinkNode slowNode = node, fastNode = node;

            while(node.NextNode != null)
            {
                slowNode = slowNode.NextNode;   //相当于步长为1的节点指针
                fastNode = fastNode.NextNode;   //相当于步长为2的节点指针
                if (fastNode.NextNode!= null)
                    fastNode = fastNode.NextNode;
                else
                    return false;

                node = node.NextNode;
                if (slowNode == fastNode)
                    return true;    //如果相交,证明有环
            }
            return false;
        }

相关文章:

  • 2022-12-23
  • 2021-06-13
猜你喜欢
  • 2021-10-11
  • 2022-01-11
  • 2021-11-10
相关资源
相似解决方案