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

判断链表中是否有环

https://www.nowcoder.com/practice/650474f313294468a4ded3ce0f7898b9

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    bool hasCycle(ListNode *head) {
        ListNode *fast=new ListNode(66);//双指针
        ListNode *slow=new ListNode(66);
        fast=slow=head;
        while (fast!=NULL&&fast->next!=NULL) {//next存在,则可以找到next->next,避免next->next越界
            fast=fast->next->next;//一个跑得快,一个跑得慢,如果有循环,必定会相遇
            slow=slow->next;//fast更快,fast不越界,则slow一定不越界
            if(slow==fast){
                return true;
            }
        }
        return false;
    }
};

全部评论

相关推荐

头像
03-25 16:22
南华大学 Java
不敢追175女神:你是打了上千个招呼吧?😂
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
02-26 16:57
明天不下雨了:把第二个项目放第一个去,其他没什么问题,多投,这世道就这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务