题解 | #判断链表中是否有环#

判断链表中是否有环

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;

    }
};
全部评论

相关推荐

牛客737698141号:他们可以看到在线简历的。。。估计不合适直接就拒了
点赞 评论 收藏
分享
ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务