Linked List Cycle-- 判断一个单向链表中是否有环存在_gordon1986的博客-程序员秘密

技术标签: 算法  leetcode实现每周一题  单向链表    

原题:

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

=>给定一个单向链表,如何判断它里面是否有环存在。

Follow up:
Can you solve it without using extra space?

=>能否不使用额外的空间来解决这个问题?

/**
 * 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) {
        // IMPORTANT: Please reset any member data you declared, as
        // the same Solution instance will be reused for each test case.
        
    }
};


晓东分析:

这是一个经典的题目了,他的解题思路就是使用快慢指针,就像我们以前学过的初中(or小学)数学题,只要两者的速度不同,在一个环内,终归是会追上的。当然我们一般的题目都是多长时间追上啊之类的问题。很简单吧,直接看代码了。

 

代码实现:

/**
 * 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) {
        // IMPORTANT: Please reset any member data you declared, as
        // the same Solution instance will be reused for each test case.
        ListNode *slow = head;
        ListNode *fast = head;
        
        while(fast != NULL && fast->next != NULL){
            slow = slow->next;
            fast = fast->next->next;
            if(fast == slow) return true;
        }
        
        return false;
        
    }
};


执行结果:

16 / 16test cases passed.
Status:

Accepted

Runtime: 76 ms

希望大家有更好的算法能够提出来,不甚感谢。

 

若您觉得该文章对您有帮助,请在下面用鼠标轻轻按一下“顶”,哈哈~~·

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011960402/article/details/14100879

智能推荐

Spring Boot:在Eclipse/STS设置热插拔免重启_caishancai的博客-程序员秘密

在Web开发中,比较郁闷的事情是修改源码之后,需要重新编译整个项目,然后重启web服务器。现在Spring Boot有了热插拔的组件,可以让你修改源码之后,不需要再重启web服务器,只需要刷新浏览器页面即可,无需再不停的重启。本文将向你展示如何使Spring Boot的Web应用具有热插拔的功能(在Eclipse/STS中设置)。1.下载spring-loaded

编码 & 8421BCD 码的故事_看得见的时间的博客-程序员秘密

计算机编码中,我们都是先了解了二进制,其中分有符号数,无符号数,然后会接触到BCD码,那么BCD码是怎么产生的?为什么又要用四位二进制来表示呢?一、BCD码1.由来计算机使用二进制数来处理信息,但是如果二进制的形式输入和输出数据,就十分不方便了。一般来说,输入输出时采用十进制数。举例: 明明二进制 0110 (B)代表数字 6,但是人们更习惯,也更喜欢的数 阿拉伯数字 6 ,也可以是 中文 六。那么,这里就存在一个问题,我们使用计算器,是输入的为十进制数 25,但是计算机使用二进制数来处理信息,那

软件人员推荐书目(一) 大师篇_hinswhale的博客-程序员秘密

一、 科学哲学和管理哲学【1】 "程序开发心理学"(The Psychology of Computer Programming : Silver Anniversary Edition) 【2】 "系统化思维导论"(An Introduction to Systems Thinking, Silver Anniversary Edition)【3】 "系统设计的一般原理"( Gene

使用Dev C++建立工程文件调用不同文件下的c文件_devc怎么调用另一个文件_哎梦的博客-程序员秘密

在学校嵌入式软件小组课上直播翻车,很尴尬 !!!!然后我结束以后仔细找了一歘啊错误原来是因为没有主一头文件的包含形式导致的我先介绍一下C语言包含头文件时<>和""区别我在刚学的时候就有一种疑惑 ,为什么学长的文件夹下面包含头文件有时候就是#include <a.h>有时候就是#include "a.h"呢后来看了一下资料才知道#include "test.h"和...

『Ruby』变量与伪变量_Ho1aAs的博客-程序员秘密

文章目录一、支持的变量Ⅰ、变量 VariableⅡ、全局变量 Global variableⅢ、实例变量 Instance variableⅣ、类变量 Class variableⅤ、常数 Constant二、伪变量完一、支持的变量Ruby支持五种类型的变量变量(局部变量)全局变量实例变量类变量常数Ⅰ、变量 Variable普通变量也是局部变量,以小写、下划线开头,在方法中定义、在方法中使用,与大部分语言相同def show a = 1 puts "a is #{a}"end

h5去掉滚动条 h5解决移动端滚动条问题_h5关闭滚动条样式_F-Fanger的博客-程序员秘密

写在公共样式即可:html,body { width: 100%; height: 100%; overflow: scroll;}html::-webkit-scrollbar,body::-webkit-scrollbar { width: 0px; height: 0px;}body { margin: 0;}

随便推点

Linux服务器运维入门和常用的密令记录_linux经典运维资料_玉念聿辉的博客-程序员秘密

一开始做前端的时候最不理解的就是后台的哥们,下发的数据我到现在都忘不了,不信你们自己看一下{"名字":"玉念聿辉","特点":"帅,特备帅"};没办法,谁叫我太帅呢,只有自己去学习后台开发了。慢慢的你会发现,当一个项目从策划到后期内测、上市都能搞定的时候,特别讨嫌的问题又出现了,运维小哥照样可以整死你;OK一下是我在项目运维上常用到的Linux密令和入门资料,做一个记载,希望大家也能多多分...

emacs配置(自动注释)_chengmei3801的博客-程序员秘密

事先声明:我的这个配置只是菜鸟级别的,可以应付平时的c++编写了,由于本人也是初学所以有些地方配置还不是很完善,但是随着我后续学习的深入,我会不断更新我的博客,有什么需要交流的可以邮件我,谢谢,十分愿意接受前辈和牛人的指导。 我的系统是:ubuntu 12.04LTS ,emacs 版本是:...

如何载入管脚配置文件?_qsj8362234的博客-程序员秘密

<br />问题的提出:开发板的管脚很多是固定的,例如某个管脚连着LED或者开关,这些管脚分配是不需要修改的,那么如何把其他工程文件的管脚分配方案导入进来呢<br /> <br />思路:建立一个工程需要配置的内容:<br />    1. 器件类型(如Cyclone)<br />    2. 器件型号(如EP1C12Q240C8)<br />    3. 顶层实体名<br />    4. 设计文件路径<br />    如果针对具体的电路板,还要设置<br />    1. 引脚分配(往往是内容最多的一

Chisel教程——02.Chisel环境配置和第一个Chisel模块的实现与测试_chisel csdn_计算机体系结构-3rr0r的博客-程序员秘密

现在已经对Scala有一定的了解了,可以开始构造一些硬件了。Chisel的全称为Constructing Hardware In a Scala Embedded Language,是一个基于Scala的DSL(Domain Specific Language,特定领域专用语言),因此可以在同一串代码内兼得Scala和Chisel编程的优点。......

(原創) 如何使用硬體的方式『播放SD卡內wav檔音樂』? (DE2) (Quartus II) (Nios II)_WWWWWWWWolf的博客-程序员秘密

AbstractDE2原廠光碟所附的『播放SD卡內wav檔音樂』範例程式並無法在Quartus II 6.1 + Nios II 6.1正常執行,本文提出解決的方式。使用環境 : Quartus II 6.1 + Nios II 6.1ProblemDE2原廠光碟所附的範例程式是由Quartus II 6.0 + Nios II 6.0所開發,本來在Quartus II 6.0 + Nios II...

ubuntu服务器双ip(一条公网一条内网 )配置:_ubuntu 设置公网ip_zhou_caicai的博客-程序员秘密

服务器双ip配置:1:一个外网地址auto enp3s0f0iface enp3s0f0 inet staticaddress xxx.xxx.xxx.xxxnetmask xxx.xxx.xxx.xxxgateway xxx.xxx.xxx.xxx一个内网地址auto enp3s0f1iface enp3s0f1 inet staticaddres

推荐文章

热门文章

相关标签