3.2刷题记录 Linked List Cycle(141)

 

 一个快慢指针的题,slow指针一次一格,fast指针一次两格,当相碰便是有环。减少了时间复杂度,如果使用哈希表解答的话要注意,哈希表存储的必须是地址,是地址匹配才可以,数值匹配是不行的。

class Solution {
public:
    bool hasCycle(ListNode *head) 
    {
        if(head==NULL||head->next==NULL)
        {
            return false;
        }
        ListNode*slow=head;
        ListNode*fast=head->next;
        while(slow!=fast)
        {
            if(fast==NULL||fast->next==NULL)
            {
                return false;
                break;
            }
            slow=slow->next;
            fast=fast->next->next;
        }
        return true;
    }
};

 

posted @ 2021-03-02 16:41  章大佬  阅读(20)  评论(0)    收藏  举报