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

Leecode之环形链表

一.题目及剖析

https://leetcode.cn/problems/linked-list-cycle/description/

这道题就是去判断一个链表是否带环,分两种情况,链表中只有一个元素则一定不带环,链表中有两个及以上的元素则要引入快慢指针

二.思路引入

设置两个快慢指针,快指针走2步,慢指针走1步(不论快慢指针怎么走,如果链表带环则两指针一定能相遇,只不过当两指针走的步数差为1时,相遇所用时间最短),当两指针相遇,则链表带环

三.代码引入

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
bool hasCycle(struct ListNode *head) {
    struct ListNode* slow, * fast;
    slow = fast = head;
    if(head == NULL || head->next == NULL)
    return false;
    while(fast && fast->next)
    {
        slow = slow->next;
        fast = fast->next->next;
        if(slow == fast)
        return true;
    }
    return false;
}

最好用这么一种方法,方便后面判断环的入口


http://www.kler.cn/news/232857.html

相关文章:

  • c#进程(Process)常用方法
  • Linux运用fork函数创建进程
  • Ubuntu22.04 gnome-builder gnome C 应用程序习练笔记(一)
  • 教你用C++开发 身份证号码日期提取工具
  • 除夕快乐(前端小烟花)
  • 【C++ 二分】电脑游戏
  • 聊聊JIT优化技术
  • Android9~Android13 某些容量SD卡被格式化为内部存储时容量显示错误问题的研究与解决方案
  • 贪心算法入门题(算法村第十七关青铜挑战)
  • Get Ready!这些 ALVA 应用即将上线 Vision Pro!
  • C语言:分支与循环
  • nodejs+vue高校实验室耗材管理系统_m20vy
  • 探索XGBoost:参数调优与模型解释
  • 【网工】华为设备命令学习(服务器发布)
  • 程序设计语言之机器语言、汇编语言、高级语言
  • 【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏3(附项目源码)
  • 《Docker极简教程》--Docker环境的搭建-在Windows上搭建Docker环境
  • Elasticsearch 安装和配置脚本文档
  • UE4运用C++和框架开发坦克大战教程笔记(十九)(第58~60集)完结
  • 通俗易懂:快速排序算法全解析
  • TCP/IP协议以及UDP(超详细,看这一篇就够了)
  • Docker配置Portainer容器管理界面
  • StarRocks 1 月社区动态(2024)
  • Android AOSP源码研究之万事开头难----经验教训记录
  • 强化学习 | 基于 Q-Learning 算法解决 Treasure on Right 游戏
  • 分享90个行业PPT,总有一款适合您
  • Linux 命令行的世界 :2.文件系统中跳转
  • Transformer的PyTorch实现之若干问题探讨(二)
  • Linux的可移植性
  • 【FFmpeg】ffplay 命令行参数 ⑤ ( 设置音频滤镜 -af 参数 | 设置统计信息 -stats 参数 | 设置同步时钟类型 -sync 参数 )