快慢指针
始终先快指针走两步,然后判断是否相遇,如果相遇则返回true
若没有相遇,则慢指针向前走一步,一直循环,直到相遇或者快指针等于空为止。
class Solution { public: bool hasCycle(ListNode *head) { if(head == nullptr) return false; ListNode *slow = head; ListNode *fast = head; while(fast != nullptr && fast->next != nullptr){ fast = fast->next->next; if(fast == slow) return true; slow = slow->next; } return false; } };