141.环形链表

题目

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

程序核心思想

方法非常简单,准备一个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;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。