当前位置: 首页 > article >正文

【Leetcode】环形链表

环形链表

题目

在这里插入图片描述

思路

创建一个快指针一次走2步,一个慢指针一次走1步,如果没环,快指针会提前把整个链表遍历完,如果有环,进入环之后,快指针会追上慢指针

快指针一次只能走2步吗?为了提高效率,能否一次走n步?
答:不可以,快指针一次走两步,每次就和慢指针的距离缩小一步,最后一定会相遇,但如果走n步,每次缩小n-1步,在某些极端条件下,快慢指针永远不能相遇

代码实现

 /**
 * 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;

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

http://www.kler.cn/a/552075.html

相关文章:

  • 使用LightGBM与Apache Spark进行多分类任务
  • 使用html css js 来实现一个服装行业的企业站源码-静态网站模板
  • 开源模型应用落地-DeepSeek-R1-Distill-Qwen-7B-LoRA微调-LLaMA-Factory-单机单卡-V100(一)
  • 学习总结2.18
  • SpringAI系列 - RAG篇(三) - ETL
  • Qt的QPushButton样式设置
  • 简单认识一下-Redis
  • 计算机网络协议(二)
  • 【和春笋一起学C++】if else语句
  • 未来游戏:当人工智能重构虚拟世界的底层逻辑
  • 新数据结构(10)——Java抽象类和接口
  • EasyPoi系列之框架集成及基础使用
  • PHP语法完全入门指南:从零开始掌握动态网页
  • AWS Lambda自动化部署流程指南
  • C++:构造函数和析构函数
  • 软件评测师复习之计算机网络(4)
  • 数据结构----哈希表的插入与输出
  • 实用且美观,一款简单且模块化的UI组件库!
  • 机器学习_16 朴素贝叶斯知识点总结
  • CUDA 安装 一直卡在Installing Nsight Visual Studio Edition