本文主要是介绍【注释详细,思路清晰】【打卡第16天】leetcode热题HOT100之Java实现:141. 环形链表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、题目描述
给定一个链表,判断链表中是否有环。
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。
如果链表中存在环,则返回 true 。 否则,返回 false 。
2、题目分析
这个题目的意思就是判断,链表中是否有环,判断的结果是boolean。之前做过一道题,也是判断链表中是否有环,只是最后返回环的相交结点。
直接看代码吧,比较详细。
3、算法分析
/*** 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) {Set<ListNode> set = new HashSet<>();while(head != null){/** add方法,当成功添加的时候返回的结果是true,当添加失败的时候返回falseboolean add(E e);*/// 如果head是可以添加到set集合中,!set.add(head)是false ,那么继续head = head.next;// 如果head不能添加到set集合中,!set.add(head)是true,返回true,说明链表中有环if(!set.add(head)){return true; }head = head.next;}return false;}
}
这篇关于【注释详细,思路清晰】【打卡第16天】leetcode热题HOT100之Java实现:141. 环形链表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!