Problem Linked List Cycle

Problem Description:

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

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

 

 Solution:
 1  public boolean hasCycle(ListNode head) {
 2         if (head == null) return false;
 3         if (head.next == null || head.next.next == null) return false; 
 4         ListNode tortoise = head.next;
 5         ListNode hare = head.next.next;
 6         while (tortoise != hare) {
 7             if (tortoise.next == null) return false;
 8             tortoise = tortoise.next;
 9             if (hare.next == null || hare.next.next == null) return false;
10             hare = hare.next.next;
11         }
12 
13         return true;
14     }

 

posted @ 2014-06-29 14:00  HaruHaru  阅读(118)  评论(0编辑  收藏  举报