diff options
Diffstat (limited to 'linked_list_cycle2.cpp')
-rw-r--r-- | linked_list_cycle2.cpp | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/linked_list_cycle2.cpp b/linked_list_cycle2.cpp deleted file mode 100644 index 43dccea..0000000 --- a/linked_list_cycle2.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// 142. Linked List Cycle II -#include "leetcode.h" - -/* - * given 'head' of linked list, return node where the cycle begins. if there is - * no cycle return null. there is a cycle in linked list of there is some node - * in the list that can be reached again by continuously following the 'next' - * pointer. internally, 'pos' is used to denote the index of the node that - * tail's 'next' pointer is connected to. it is -1 if there is no cycle. note - * 'pos' is not passed as parameter. - */ - -class Solution { -public: - ListNode *detectCycle(ListNode *head) { - ListNode *slow = head, *fast = head; - while (fast && fast->next) { - slow = slow->next; - fast = fast->next->next; - if (slow == fast) - break; - } - if (!(fast && fast->next)) - return NULL; - while (head != slow) { - head = head->next; - slow = slow->next; - } - return head; - } -}; |