题解 | #判断链表中是否有环#
判断链表中是否有环
http://www.nowcoder.com/practice/650474f313294468a4ded3ce0f7898b9
解答:利用循环链表的特点,分别用两个指针p1和p2,p1地址以单倍速递增,p2以二倍速递增,如果链表存在环,则p1和p2总有一时刻相遇,当p1==p2时,证明有环,否则无环
class Solution { public: bool hasCycle(ListNode *head) { ListNode *p1=head,*p2=head; while(p1 && p1->next && p2 && p2->next){ p1=p1->next;//p1单倍递增 p2=p2->next->next;//p2双倍递增 if(p1==p2) return true; } return false; } };