千家信息网

C++怎么解决单链表中的环问题

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本文小编为大家详细介绍"C++怎么解决单链表中的环问题",内容详细,步骤清晰,细节处理妥当,希望这篇"C++怎么解决单链表中的环问题"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
千家信息网最后更新 2026年11月01日C++怎么解决单链表中的环问题

本文小编为大家详细介绍"C++怎么解决单链表中的环问题",内容详细,步骤清晰,细节处理妥当,希望这篇"C++怎么解决单链表中的环问题"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

单链表中的环

Example 1:

Input: head = [3,2,0,-4], pos = 1

Output: true

Explanation: There is a cycle in the linked list, where tail connects to the second node.

Example 2:

Input: head = [1,2], pos = 0
Output: true
Explanation: There is a cycle in the linked list, where tail connects to the first node.

Example 3:

Input: head = [1], pos = -1
Output: false
Explanation: There is no cycle in the linked list.

Follow up:

Can you solve it using O(1) (i.e. constant) memory?

这道题是快慢指针的经典应用。只需要设两个指针,一个每次走一步的慢指针和一个每次走两步的快指针,如果链表里有环的话,两个指针最终肯定会相遇。实在是太巧妙了,要是我肯定想不出来。代码如下:

C++ 解法:

class Solution {public:    bool hasCycle(ListNode *head) {        ListNode *slow = head, *fast = head;        while (fast && fast->next) {            slow = slow->next;            fast = fast->next->next;            if (slow == fast) return true;        }        return false;    }};

Java 解法:

public class Solution {    public boolean hasCycle(ListNode head) {        ListNode slow = head, fast = head;        while (fast != null && fast.next != null) {            slow = slow.next;            fast = fast.next.next;            if (slow == fast) return true;        }        return false;    }}

读到这里,这篇"C++怎么解决单链表中的环问题"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

指针 C++ 问题 文章 两个 内容 解法 肯定 妥当 巧妙 代码 快慢 思路 新知 更多 步骤 知识 知识点 篇文章 细节 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技名片 广州万易互联网科技有限公司 互联网科技工作委员会 科技互联网公司装修 齐家互联网科技 世界互联网领先科技成果 远拓互联网科技 卓越科技互联网 招聘 银川新华互联网科技学校地址 互联网科技博主是什么意思 佳云科技和互联网广告 玉溪互联网科技怎么选 成都互联网科技公司工作好不好 每天都有哪些好的互联网科技 唯美互联网科技 三亚科技创新互联网基地 北京品多多互联网科技有限公司 互联网领先科技成果宣传视频 黑龙江互联网科技公司 现代科技的标志之一的互联网 科技企业和互联网企业 深圳科技互联网 致聘互联网科技 上海喔噻互联网科技 互联网科技和法律行业 广州千川互联网科技有限公司 互联网科技平台产品运营 陕西九四连强互联网科技有限公司 华人运通互联网科技公司 瑞安市蟠桃会互联网科技有限公司
0