【25】141. Linked List Cycle

141. Linked List Cycle

  • Total Accepted: 156342
  • Total Submissions: 437402
  • Difficulty: Easy
  • Contributors: Admin

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

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

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

 

posted @ 2017-02-07 11:08  会咬人的兔子  阅读(118)  评论(0编辑  收藏  举报