(一)题目描述
给定一个链表,判断链表中是否有环。
(二)算法思路
1 我们遍历所有的节点,并哈希表中存储每个节点的引用.
2 如果当前节点为空,即我们已经遍历到了链表尾部的下一个节点. return false
3 不为空即是环形链表, return true
(三)LeetCode AC代码
public class Solution { public boolean hasCycle(ListNode head) { Set<ListNode> nodesSeen = new HashSet<>(); while(head != null){ if(nodesSeen.contains(head)){ return true; }else{ nodesSeen.add(head); } head = head.next; } return false; } }
如果有梦想就去捍卫它,就这样.