【思路】 快慢指针,即慢指针一次走一步,快指针一次走两步,两个指针从链表其实位置开始运行,
**如果链表带环则一定会在环中相遇,**否则快指针率先走到链表的末尾。比如:陪女朋友到操作跑步减肥。
bool hasCycle(struct ListNode *head) {struct ListNode* slow=head,*flast=head;while(flast&&flast->next)//如果链表不是环,那么奇数的时候flast=NULL时停止循环,偶数时flast->next=NULL时停止循环,(反正只要代码会出这个while循环就说明链表不是环){flast=flast->next->next;slow=slow->next;if(flast==slow){return true;}}return false;
}