题目

思路

绝对的经典题目,快慢指针,慢指针一次走两步,快指针一次走一步,直到两指针相遇,则说明有环。

关于评论区看到的一种思路,本质是做标记。这个办法不是很好,一方面,如果测试用例足够全的话,标记内容有可能与val重复,另一方面:
面试的时候我说过这个思路,结果面试官问我:那你遍历之后,原来的数据还能用吗?哎,惨。。

题解

这大概是写的最快的一道题了,三分钟写出来的

//  Definition for singly-linked list.
class ListNode {int val;ListNode next;ListNode(int x) {val = x;next = null;}
}class Solution {public static void main(String[] args) {// 测试用例Solution solution = new Solution();ListNode node = new ListNode(1);System.out.println(solution.hasCycle(node));}public boolean hasCycle(ListNode head) {ListNode singleStep = head;ListNode multiStep = head;while (multiStep != null && multiStep.next != null) {singleStep = singleStep.next;multiStep = multiStep.next.next;if (singleStep == multiStep) return true;}return false;}
}

leetcode 141. 环形链表(快慢指针解法)相关推荐

  1. LeetCode 141. 环形链表 简单难度

    ** 141. 环形链表 ** 给定一个链表,判断链表中是否有环. 如果链表中存在环,则返回 true . 否则,返回 false . 解题思路(两种方法): 方法一:用集合set以及set.find ...

  2. LeetCode - 141. 环形链表

    141. 环形链表 import java.util.Objects;class ListNode {int val;ListNode next;ListNode(int x) {val = x;ne ...

  3. leetcode 141.环形链表 I - 142.环形链表 II 代码及指针相遇证明问题

    ⭐️ 环形链表 I 题目描述 给你一个链表的头节点 head ,判断链表中是否有环.如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 如果链表中存在环 ,则返回 tru ...

  4. 环形链表[快慢指针 入环点]

    环&快慢指针 前言 一.环形链表 二.快慢指针 1.相遇即有环 2.入环点 总结 参考文献 前言 对于环问题,快慢指针是一种常用的手段.一步两步走,通过判定是否相遇来判定是否存在环.而且快慢指 ...

  5. Leetcode 141.环形链表

    难度:简单 频率:155 题目: 给你一个链表的头节点head,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环.为了表示给定链表中的环,评测系统内部使 ...

  6. [leetcode] 141.环形链表

    给定一个链表,判断链表中是否有环. 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引 ...

  7. LeetCode 141. 环形链表

    原题链接 解题思路:快慢指针,如果快指针被慢指针追上一定是环形链表 /*** Definition for singly-linked list.* struct ListNode {* int va ...

  8. leetcode - 141. 环形链表(哈希表)

    给定一个链表,判断链表中是否有环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 -1,则在该链表中没有环. 示例 1: 输入: ...

  9. Leetcode 141. 环形链表 解题思路及C++实现

    解题思路: 定义快慢两个指针,当指针所指节点是同一个时,说明出现了环. /*** Definition for singly-linked list.* struct ListNode {* int ...

最新文章

  1. pageContext.findAttribute()与pageContext.getAttribute()的区别
  2. 跟你聊得这么投缘,你却说自己不是人?!
  3. python udp client
  4. 自动解析复杂类的属性 实现归档或者进行序列化 反序列话的时候为每一个属性添加序列化方法的繁琐...
  5. openstack的vnc启动ssl
  6. mysql5建函数报1064错误,MySQL存储函数创建错误ERROR 1064和1327
  7. AUTOSAR从入门到精通100讲(四十八)-Lin通信协议栈分析两步走-LinTrcvLIN Driver
  8. python对excel的操作
  9. 模式识别与机器学习笔记(二)机器学习的基础理论
  10. java之StringBuffer
  11. 【Cesium】Cesium三维模型调整
  12. STM32F429 之EXTI外部中断
  13. PMP知识点:项目成本管理计算公式
  14. ES6(ECMAScript)快速使用
  15. Exp6 信息搜集与漏洞扫描 20164302 王一帆
  16. MySQL5.7乱码问题
  17. java-asc码形式输出
  18. 小米官宣:手表Color 2来了,6色多彩表带,你喜欢哪个?
  19. JS 怎么使用十六进制保存100位状态的问题
  20. 程序员眼中的中国传统文化-王阳明《传习录》

热门文章

  1. UVALive - 3231 Fair Share(最大流+二分)
  2. 吐槽今年一级计算机,吐槽大会#辽宁省考#当一个没有情感的计算机器
  3. HDOJ1536 S-nim
  4. LambdaNetworks解读
  5. HDU2227(非降子序列的个数)
  6. 最小费用最大流-SPFA-多路增广
  7. 【Boost】boost库asio详解9——TCP的简单例子2
  8. STL系列之一 deque双向队列
  9. Log4j执行漏洞修复教程
  10. Linux网络编程 | 高性能定时器 :时间轮、时间堆