博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Linked List Cycle 单链表中的环
阅读量:7039 次
发布时间:2019-06-28

本文共 846 字,大约阅读时间需要 2 分钟。

Given a linked list, determine if it has a cycle in it.

Follow up:

Can you solve it without using extra space?

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

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;    }}

本文转自博客园Grandyang的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
java中文乱码解决之道(六)—–javaWeb中的编码解码
查看>>
《数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)》导读
查看>>
后台 JavaScript 编译改进 Chrome 性能
查看>>
数据结构课程设计实战
查看>>
Rabbit.js —— 国产 RESTful 应用开发框架
查看>>
GitLab 9.3.0-rc2 发布,代码托管平台
查看>>
《Adobe Illustrator CC经典教程》—第0课0.8节创建和编辑渐变
查看>>
《Dreamweaver CS6完美网页制作——基础、实例与技巧从入门到精通》——第2章 网页色彩知识2.1 网页配色基础...
查看>>
物联网设备安全1.6 小结
查看>>
细数二十世纪最伟大的十大算法
查看>>
《机器学习与数据科学(基于R的统计学习方法)》——2.10 SQL数据库
查看>>
MySQL 中你应该使用什么数据类型表示时间?
查看>>
《Visual Basic 2012入门经典》----1.6 设计界面
查看>>
《易学C++(第2版)》——1.3 选好一种语言
查看>>
Java8中CAS的增强
查看>>
基本线程同步(四)在同步代码中使用条件
查看>>
高管必备思维:区分2类问题和4类可视化方法
查看>>
《C++ 黑客编程揭秘与防范(第2版)》——第6章 加密与解密
查看>>
《Visual C++ 开发从入门到精通》——2.4 输入/输出基础
查看>>
地平线谭洪贺:AI芯片怎么降功耗?从ISSCC2017说起
查看>>