[Leetcode] 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?

 

Solution:

快慢指针。

 1 /**
 2  * Definition for singly-linked list.
 3  * class ListNode {
 4  *     int val;
 5  *     ListNode next;
 6  *     ListNode(int x) {
 7  *         val = x;
 8  *         next = null;
 9  *     }
10  * }
11  */
12 public class Solution {
13     public boolean hasCycle(ListNode head) {
14         if(head==null||head.next==null)
15             return false;
16         ListNode fast=head;
17         ListNode slow=head;
18         while(fast!=null&&fast.next!=null){
19             fast=fast.next.next;
20             slow=slow.next;
21             if(fast==slow)
22                 return true;
23         }
24         return false;
25     }
26 }

 

posted @ 2014-10-17 14:20  Phoebe815  阅读(94)  评论(0编辑  收藏  举报