链表-判断链表中是否存在环
判断链表中是否有环
http://www.nowcoder.com/questionTerminal/650474f313294468a4ded3ce0f7898b9
解法思路:
利用快慢指针,一个指针走两步一个指针走一步,直到快指针为null,则说明不存在环,如果存在环,则快慢指针总会有一次相等。
java解答代码:
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public boolean hasCycle(ListNode head) {
if(head == null){
return false;
}
ListNode last = head;
ListNode first = head;
while(first.next!= null && first.next.next!=null){
first = first.next.next;
last = last.next;
if(first == last){
return true;
}
}
return false;
}
}

查看4道真题和解析