/** * 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 || head ->next == nullptr) return false; ListNode * fast = head; ListNode * slow = head; while(fast){ slow = slow->next; fast = fast->next; if(!fast) return false; fast = fast->next;//在使用指针一次向后指两次时,需要注意得先判断一下好、fast->next 是否为空,不为空才能进一步向后指 if(fast == slow) return true; } return false; } };