链表-判断链表中是否存在环
判断链表中是否有环
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; } }