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

判断链表中是否有环

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

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

/**
 * 
 * @param head ListNode类 
 * @return bool布尔型
 */
bool hasCycle(struct ListNode* head ) {
    // write code here
    struct ListNode* qukly = head;
    struct ListNode* slow = head;
    while(qukly&&qukly->next){      // 之所以两个,是考虑节点个数是奇数还是偶数
        qukly = qukly->next->next;  // 每一次走两步
        slow = slow->next;          // 每一次走一步
        if(qukly==slow){
            return true;            // 快指针追上慢指针
        }
    }
    return false;                   // 没有环,快指针提前结束
}
全部评论

相关推荐

09-24 18:30
已编辑
长春工业大学 产品经理
小肥罗:HR就是好人的缩写哈哈哈哈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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