题解 | #判断链表中是否有环#
判断链表中是否有环
http://www.nowcoder.com/practice/650474f313294468a4ded3ce0f7898b9
class Solution { public: bool hasCycle(ListNode *head) { //第一种解法:每次让一个结点的next指向自己,如果有环,最终只剩一个结点成环 /*while(head&&head->next)//如果没有环,会在最后一个数跳出循环 { ListNode *p=head->next; if(head==p)//如果有环,最后会只有head一个元素 return true; head->next=head; head=p; } return false;*/ //第二种解法:快慢指针,如果有环必会相等,无环必跳出循环 ListNode *slow=head,*fast=head; while(fast&&fast->next) { slow=slow->next; fast=fast->next->next; if(slow==fast) return true; } return false; } };