当前位置: 首页 > 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/a/232857.html

相关文章:

  • DOM 规范 — MutationObserver 接口
  • 高频 SQL 50 题(基础版)连接部分
  • 11Java面向对象高级(篇2,Java程序的核心套路!!!!)
  • mysql 实现分库分表之 --- 基于 MyCAT 的分片策略详解
  • 【Qt】在 Qt Creator 中使用图片资源方法(含素材网站推荐)
  • 本地编译ChatNio的问题解决
  • 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集)完结
  • 通俗易懂:快速排序算法全解析