博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 141 环形链表
阅读量:4143 次
发布时间:2019-05-25

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

环形链表

题目

给定一个链表,判断链表中是否有环。

为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。

示例 1:

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

输出:true
解释:链表中有一个环,其尾部连接到第二个节点。
在这里插入图片描述

示例 2:

输入:head = [1,2], pos = 0

输出:true
解释:链表中有一个环,其尾部连接到第一个节点。

示例 3:

输入:head = [1], pos = -1

输出:false
解释:链表中没有环。
在这里插入图片描述

思路

使用快慢指针遍历链表,快指针一次走两个节点,慢指针一次走一个节点。如果是环形链表,则终有一次会碰见;如果不是环形链表,则在快指针指向NULL时返回false

代码

bool hasCycle(struct ListNode *head) {    if (head == NULL) {        return false;    }    struct ListNode *quick = head;    struct ListNode *slow = head;    //因为快指针一次走两个节点,可能它现在指的是NULL也可能它的next是NULL    while(quick && quick -> next) {        slow = slow -> next;        quick = quick -> next -> next;        if (quick == slow) {            return true;        }    }    return false;}

转载地址:http://iwkti.baihongyu.com/

你可能感兴趣的文章
重置oracle 11G的system、sys密码
查看>>
ORA-28000: the account is locked-的解决办法
查看>>
[详解]为什么选择Spring Boot作为微服务的入门级微框架(PPT)
查看>>
CocoaPods解决Unable to add a source with url
查看>>
Swift3.0--GCD
查看>>
Carthage使用心得-让自己的项目支持Carthage
查看>>
如何使用Carthage管理iOS依赖库
查看>>
升级xcode8,swift3的注意点和变化
查看>>
双击启动tomcat中的startup.bat闪退原因及解决方法
查看>>
ora-01440:要减小精度或标度,则要修改的列必须为空
查看>>
解决ios/swift 报错 Reason: image not found
查看>>
fastjson 过滤不需要的字段或者只要某些字段
查看>>
mac 下从设置启动mysql 失败,“Warning:The /usr/local/mysql/data directory is not owned by
查看>>
mac使用Wireshark抓取分析iphone数据包
查看>>
java编译时有时候会出现***$1.class这样的文件
查看>>
java使double保留两位小数的多方法 java保留两位小数
查看>>
跟据经纬度实现附近搜索Java实现
查看>>
oracle 实现分页
查看>>
JQuery.validate自定义校验分享数组中英文文件后缀等等
查看>>
表和视图,存储过程和函数的区别
查看>>