leetcode 141. 环形链表

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/L1558198727/article/details/99618091

哈希

class Solution {
public:
    bool hasCycle(ListNode *head) {
        map<ListNode *,int> mp;
        while(head){
            if(mp[head] == 1){
                return true;
            }
            mp[head] = 1;
            head = head->next; 
        }
        return false;
    }
};

在这里插入图片描述

快慢指针

两个指针,一个速度是2一个速度是1,同时出发,如果有环前面的会追上后面的

class Solution {
public:
    bool hasCycle(ListNode *head) {

        ListNode * first = head;
        ListNode * second = head;
        while( first && first->next){
            first = first -> next -> next;
            second = second ->next;
            if(first == second){
                return true;
            }
        }
        return false;
    }
};

在这里插入图片描述

展开阅读全文

没有更多推荐了,返回首页