题目:
思路:用快慢指针来判断,慢指针一次一步,快指针一次两步。若有环,则两者迟早相遇,若无环,则快指针会指向空(或自身为空)
bool hasCycle(struct ListNode *head) {
if(head == NULL)return NULL;//基本每个题都要判断一下
struct ListNode *fast = head;
struct ListNode *slow = head;
while(fast && fast->next)//出循环则说明没有环
{
slow = slow->next;
fast = fast->next->next;
if(slow == fast)return true;//快慢指针最终相遇则说明有环
}
return false;
}