141环形链表

利用hash表来存放地址 得到是否重复

public class Solution {
    public boolean hasCycle(ListNode head) {
        if(head==null)return false;
        HashSet hs = new HashSet<ListNode>();
        while(head!=null){
            if(hs.contains(head))
                return true;
            else {
                hs.add(head);
            }
                head = head.next;
        }
        return false;
    }
}

可以用快慢指针 一个走两步 一个走一步 如果存在循环说明一个迟早回追到另外一个

    public boolean hasCycle(ListNode head) {
        if(head==null)return false;
        ListNode end = head.next;
        while(head!=null&&end!=null&&end.next!=null){
            if(end==head)return true;
            end = end.next.next;
            head = head.next;
        }
        return false;
    }
}
全部评论

相关推荐

06-11 14:15
已编辑
门头沟学院 后端
田心今心:打招呼改一下,把实习半年以上随时到岗放第一行,因为ssob的hr不点击看的时候只能看前面几个字,你前面几个字hr获取不到什么信息,也就不会点进来看
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务