leetcode-Linked List Cycle II

来源:互联网 发布:淘宝网金丝绒 编辑:程序博客网 时间:2024/06/07 20:43
 Difficulty: Medium

Given a linked list, return the node where the cycle begins. If there is no cycle, returnnull.

Note: Do not modify the linked list.

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

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode *detectCycle(ListNode *head) {        ListNode *fast=head;        ListNode *slow=head;                while(fast){            fast=fast->next;            if(!fast)                return nullptr;            fast=fast->next;            slow=slow->next;                        if(fast==slow){                slow=head;                while(fast!=slow){                    fast=fast->next;                    slow=slow->next;                }                return slow;            }        }        return nullptr;    }};


0 0
原创粉丝点击