Linked List Cycle

这个题目就是用两个指针遍历链表,一个指针每次跳一步,另外一个指针每次跳两步,如果重合,则说明有环。

 1 #define NULL 0
 2 
 3 class Solution {
 4 public:
 5     bool hasCycle(ListNode *head) {
 6         ListNode* ptr1,*ptr2;
 7         if(head == NULL)
 8             return false;
 9         ptr1 = head;
10         ptr2 = head;
11         while(ptr2->next != NULL && ptr2->next->next != NULL)
12         {
13             ptr1 = ptr1->next;
14             ptr2 = ptr2->next->next;
15             if(ptr1 == ptr2)
16                 return true;
17         }
18         return false;
19     }
20 };

 

posted @ 2014-08-14 15:58  醉剑客  阅读(156)  评论(0编辑  收藏  举报