141.环形链表

2019-07-05  本文已影响0人  Maxinxx

题目

给定一个链表,判断链表中是否有环。

程序核心思想

方法非常简单,准备一个hashset,遍历每一个节点,如果遍历的当前节点不在hashset中,那么添加进hashset,然后遍历下一个,直到遍历的节点在hashset中了,那么就是有环的,返回true,或者是遍历到最后(出现了null)也没有发现其出现在hashset中,那么返回false。

Tips

hashset的方法.png

代码

/**
 * 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) {
        HashSet<ListNode> hs = new HashSet<ListNode>();
        
        while(head != null){
            if(!hs.contains(head)){
                hs.add(head);
                head = head.next;
            }else{
                return true;
            }
        }
        return false;
    }
}
上一篇下一篇

猜你喜欢

热点阅读