力扣 141. 环形链表

114 阅读1分钟

🔗 leetcode.cn/problems/li…

题目

  • 判断链表是否有环

思路

  • hashtable
  • 龟兔赛跑,快慢指针

代码

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    bool hasCycle(ListNode *head) {
        if (head == nullptr || head->next == nullptr) return false;
        auto* curr = head;
        auto* iter = head->next->next;
        while (curr != nullptr && iter != nullptr) {
            if (curr == iter) return true;
            curr = curr->next;
            iter = iter->next;
            if (iter == nullptr) return false;
            iter = iter->next;
        }
        return false;
        
    }
};