Java for LeetCode 141 Linked List Cycle

Given a linked list, determine if it has a cycle in it.

Follow up:
Can you solve it without using extra space?

解题思路:

由于不让用extra space,所以用一个快指针和一个慢指针,快指针一次移动两步,慢指针一次移动一步,只要快指针赶上慢指针证明纯在loop,JAVA实现如下:

    public boolean hasCycle(ListNode head) {
    	ListNode fast=head,slow=head;
    	while(fast!=null){
    		slow=slow.next;
    		ListNode temp=fast.next;
    		if(temp==null)
    			return false;
    		fast=temp.next;  		
    		if(fast==slow)
    			return true;
    	}
    	return false;
    }

 

posted @ 2015-06-04 18:47  TonyLuis  阅读(220)  评论(0编辑  收藏  举报