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

判断链表中是否有环

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

#include <stdbool.h>
#include <stdlib.h>
/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */

/**
 * @author Senky
 * @date 2023.04.15
 * @par url https://www.nowcoder.com/creation/manager/content/584337070?type=column&status=-1
 * @brief 快慢指针,slow一次移动一个结点,fast一次移动两个结点,只要有环,fast指针迟早会追上slow
 * @param head ListNode类 
 * @return bool布尔型
 */
bool hasCycle(struct ListNode* head ) {
    // write code here
    struct ListNode* slow = (struct ListNode*)malloc(sizeof(struct ListNode));
    struct ListNode* fast = (struct ListNode*)malloc(sizeof(struct ListNode));

    slow = head;
    fast = head;

    int IsCycle = 0;
    /*
     *fast是判断链表是否为空,fast->nest是判断链表是否有表尾
     *因为快指针一次移动两个结点fast = (fast->next)->next,所以(fast->next)不能为空
    */
    while(fast && fast->next)
    {
        slow = slow->next;
        fast = fast->next->next;

        if(slow == fast)
        {
            IsCycle = 1;
            break;
        }
    }

    return IsCycle;    
}

#Top101#
TOP101-BM系列 文章被收录于专栏

系列的题解

全部评论

相关推荐

找工作勤劳小蜜蜂:矛盾是没有实习,就是没实战经验,公司不想要,公司不要,你就没有实习,你就进入死循环,另外你的项目不是社会现在有大量岗位存在行业用的,云存储人员早就饱和。
点赞 评论 收藏
分享
03-08 18:11
门头沟学院 Java
Java抽象小篮子:海投就完事了,简历没什么问题,最大问题是学历
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务