美文网首页
算法四·链表找环

算法四·链表找环

作者: 那钱有着落吗 | 来源:发表于2021-02-25 09:24 被阅读0次

两种方式:

一、通过java中的集合类HashSet来解决问题

public class Solution {
    public boolean hasCycle(ListNode head) {
        Set<ListNode> seen = new HashSet<ListNode>();
        while (head != null) {
            if (!seen.add(head)) {
                return true;
            }
            head = head.next;
        }
        return false;
    }
}

二、通过快慢指针的方法来做

public class Solution {
    public boolean hasCycle(ListNode head) {
        if (head == null || head.next == null) {
            return false;
        }
        ListNode slow = head;
        ListNode fast = head.next;
        while (slow != fast) {
            if (fast == null || fast.next == null) {
                return false;
            }
            slow = slow.next;
            fast = fast.next.next;
        }
        return true;
    }
}

相关文章

  • 算法四·链表找环

    两种方式: 一、通过java中的集合类HashSet来解决问题 二、通过快慢指针的方法来做

  • 2020-08-19

    单链表找环(floyd算法) 首先是示意图,链表中有环就是这种情况 问题是,在这样一个单链表中,若有环,寻找出环的...

  • 链表算法之-链表找环

    思想:快慢指针

  • 算法题面试复习

    算法模块 1. 链表 1. 链表翻转 2. 单链表判断是不是环+求环位置+求环长度 以图片为例,假设环入口距离链表...

  • 判断单链表是否有环、求环长和环入口最优算法

    判断单链表是否有环、求环长和环入口最优算法 判断单链表是否有环是一个十分经典的算法问题,许多考试或者面试都有很大的...

  • 链表

    单向链表 链表反转 判断是否有环,找链表的中间节点 快慢指针 找环的入口(求两个链表的交点可以转化成这个问题) p...

  • 【JS算法】 环形链表双指针

    LeetCood141题给你一个链表的头节点 head ,判断链表中是否有环 通俗易懂的算法 双指针算法 如果是环...

  • 数据结构与算法整理

    (1)链表的技巧 快慢指针(找环,环入口,环长度) 双指针(倒数K个节点) 合并链表(递归求解) 约瑟夫环(环形链...

  • 算法面试:链表环的检测

    在有关链表的面试算法题中,检测链表是否有环是常见的题目。 给定一个链表,要求你判断链表是否存在循环,如果有,给出环...

  • 和我一起在LeetCode刷题吧(每天一题LeetCode

    分类标签:链表 难易度:中等 题目描述: 给定一个有环链表,实现一个算法返回环路的开头节点。 有环链表的定义...

网友评论

      本文标题:算法四·链表找环

      本文链接:https://www.haomeiwen.com/subject/hrlkfltx.html