题海拾贝:力扣 141.环形链表

Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路!

我的博客: <但凡.

我的专栏: 《编程之路》、《数据结构与算法之美》、《题海拾贝》

欢迎点赞,关注!

1、题目

2、题解(快慢指针)

我们可以定义两个指针,刚开始时都指向这个链表的头节点,然后让快指针每次走两个节点,慢指针每次走一个节点。如果有环状链表存在,那快慢指针一定会相遇。倘若没有,快指针一定会先走到头,快指针下一个节点是空或者他自己是空时,返回假。

cpp 复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
bool hasCycle(struct ListNode *head) {
    struct ListNode* fast=head;
    struct ListNode* slow=head;
    if(head==NULL||head->next==NULL) return false;

    while( fast!=NULL && slow!=NULL && fast->next!=NULL){
        fast=fast->next->next;
        slow=slow->next;
        if( fast==slow ) return true;
    }
    return false;

}

好了,今天的内容就分享到这,我们下期再!

相关推荐
武子康1 小时前
驾驶轨迹换个坐标,就能给移动机器人用吗?
人工智能·算法·机器学习
文丑颜不良啊4 小时前
LeetCode2461~2480题目解析
java·leetcode
文丑颜不良啊5 小时前
LeetCode2441~2460题目解析
java·leetcode
文丑颜不良啊6 小时前
LeetCode2521~2540题目解析
java·leetcode
lisw057 小时前
Dayhoff的PAM替换矩阵理论评介!
线性代数·算法·矩阵
一起学安全技术8 小时前
拆大模型 03|注意力的一句话版本:不用论文讲清 Attention
深度学习·算法·语言模型·transformer
Delightrs9 小时前
Rust LeetCode238 算法题解
开发语言·算法·rust
自信150413057599 小时前
重生之从0开始学习c++之——vector-中篇
c++·学习·算法
文丑颜不良啊9 小时前
LeetCode2501~2520题目解析
java·leetcode