环形链表
不管怎么样slow最多走半圈了,
快慢指针slow走一步,fast走两步最合适,因为假设fast和slow相差n每一次他们前进,就会相差n-1步,这样他们一定会相遇,如果是环形链表的话。
代码
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/
bool hasCycle(struct ListNode *head) {struct ListNode *fast=head;struct ListNode *slow=head;while(fast && fast->next){slow=slow->next;fast=fast->next->next;if(fast == slow){return true;}}return false;
}
自用笔记,文章质量不行!!!