/** * 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; } ListNode *slow = head; ListNode *fast = head->next; while (slow != fast) { if (fast == nullptr || fast->next == nullptr) { // 并且调用空指针会报错 return false; } slow = slow->next; fast = fast->next->next; } return true; } };