java刷题--141环形链表

Posted Anrys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java刷题--141环形链表相关的知识,希望对你有一定的参考价值。

java刷题--141环形链表

题目

在这里插入图片描述

代码

法一:快慢指针

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

法二:hashset

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

结果

在这里插入图片描述
在这里插入图片描述

以上是关于java刷题--141环形链表的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode Java刷题笔记—141. 环形链表

LeetCode Java刷题笔记—142. 环形链表 II

Leecode刷题之旅-C语言/python-141环形链表

LeetCode刷题141-简单-环形链表

LeetCode刷题141-简单-环形链表

Leetcode刷题100天—141.环形链表(链表)—day01