判断链表是否有环的问题

一个常见的有关链表的问题:如何判断一个单链表中是否存在环

答案比较简单,设定两个指针,一个走的快,一个走的慢,如果能相遇,说明有环。

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