判断链表是否有环的问题
一个常见的有关链表的问题:如何判断一个单链表中是否存在环
答案比较简单,设定两个指针,一个走的快,一个走的慢,如果能相遇,说明有环。
Java代码如下,一些细节也需要注意:
public boolean isLoopExists(Node node) {
Node fast = node;
Node slow = node;
while ( fast != null && fast.next != null ) {
fast = fast.next.next;
slow = slow.next;
if ( slow == fast )
return true;
}
return !(fast == null || fast.next == null);
}
Written on September 24, 2016