【链表】力扣 141. 环形链表

一、题目

二、思路

  • 龟兔进行赛跑
    • 龟的速度是 1,兔的速度是 2
    • 龟兔从同一起点出发,若 龟追上兔 则说明 有环 存在;若追不上,则说明无环。

三、代码

java 复制代码
/**
 * Definition for singly-linked list.
 * class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public boolean hasCycle(ListNode head) {
        // 龟兔位于同一起点
        ListNode slow = head, fast = head;
        while(fast != null && fast.next != null) {
            slow = slow.next;// 龟走1步
            fast = fast.next.next;// 兔走2步
            if(fast == slow) {//龟兔相遇->进入环
                return true;
            }
        }
        return false;
    }
}
相关推荐
EE工程师43 分钟前
数据结构篇 - 循环队列
数据结构
俩娃妈教编程1 小时前
洛谷选题:P1420 最长连号
数据结构·算法
二年级程序员1 小时前
单链表算法题思路详解(上)
c语言·数据结构·c++·算法
wangluoqi2 小时前
c++ 数据结构-树状数组、线段树 小总结
开发语言·数据结构·c++
化学在逃硬闯CS2 小时前
Leetcode111. 二叉树的最小深度
数据结构
重生之后端学习3 小时前
230. 二叉搜索树中第 K 小的元素
java·数据结构·算法·深度优先
星火开发设计3 小时前
类模板:实现通用数据结构的基础
java·开发语言·数据结构·c++·html·知识
EE工程师3 小时前
数据结构篇 - 顺序队列
数据结构·顺序队列
白中白121384 小时前
算法题-14
数据结构·算法·leetcode
plus4s4 小时前
2月13日(73-75题)
数据结构·c++·算法