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

【练习】【链表】力扣热题100 141. 环形链表

题目

  1. 环形链表

来源:力扣热题100 141. 环形链表


思路(注意事项)

快慢指针。


纯代码

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    bool hasCycle(ListNode *head) {
        if (head == nullptr || head -> next == nullptr) return false;
        ListNode *p = head -> next, *q = p -> next;
        while (p != q && q != nullptr)
        {
            p = p -> next;
            q = q -> next;
            if (q != nullptr) q = q -> next;
        }
        if (q == p) return true;
        else return false;
    }
};

题解(加注释)

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    bool hasCycle(ListNode *head) {
        // 如果链表为空或只有一个节点,直接返回 false
        if (head == nullptr || head -> next == nullptr) return false;

        // 定义两个指针 p 和 q,分别指向 head 的下一个节点和下下个节点
        ListNode *p = head -> next, *q = p -> next;

        // 使用快慢指针法遍历链表
        while (p != q && q != nullptr)
        {
            p = p -> next; // 慢指针 p 每次走一步
            q = q -> next; // 快指针 q 每次走两步
            if (q != nullptr) q = q -> next;
        }

        // 如果 p 和 q 相遇,说明链表有环
        if (q == p) return true;
        // 否则,链表无环
        else return false;
    }
};

相关文章:

  • wordpress 珠宝主题深圳百度首页优化
  • 上传网站视频要怎么做才清楚班级优化大师免费下载安装
  • 网站一般用什么软件做广告最多的网站
  • 贵阳网站建设外包全网搜索引擎
  • asp.net做网站视频做网站一般需要多少钱
  • 网站关停怎么做it培训机构口碑排名
  • 汽车免拆诊断案例 | 2023款丰田雷凌汽油版车行驶中偶尔出现通信故障
  • 八、Redis 过期策略与淘汰机制:深入解析与优化实践
  • C语言-指针
  • android_viewtracker 原理
  • Vue的简单入门 三
  • Qt 坐标体系:逻辑坐标与物理坐标的区别与实践
  • SCI期刊推荐 | 免版面费 | 计算机领域:信息系统、软件工程、自动化和控制
  • Scala 中 val 和对象内部状态的关系
  • 如何搭建本地LLM的应用和开发
  • VBA信息获取与处理第五节:如何在单个工作表中查找某个给定值
  • 通往 AI 之路:Python 机器学习入门-机器学习基本概念
  • C/C++ 内存管理
  • 马斯克:AI游戏前景无限
  • 大模型+知识图谱:重塑企业制度标准管理
  • C++方向的面经
  • Self-Supervised Prompt Optimization
  • HTTP协议(20250305)
  • 设计模式:迭代器模式
  • Oracle常用分析诊断工具(9)——AWR
  • 杨辉三角解法