/*
    遍历链表:
        1.每遍历一个节点,判断该节点是否在set中,要是在set中则表示有环,退出遍历,否则执行下面
            1.把该节点加入set
            2.指针后移
    */
    public boolean hasCycle(ListNode head) {
        ListNode p = head;
        HashSet<ListNode> set = new HashSet<>();
        boolean contains = false;
        while(p != null){
            if(set.contains(p)){
                contains = true;
                break;
            }
            set.add(p);
            p=p.next;
        }
        return contains;
    }
}