0
点赞
收藏
分享

微信扫一扫

NC3 链表中环的入口结点

王传学 2022-01-31 阅读 38

描述

给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。

数据范围: 1≤n≤10000,1<=结点值<=10000

要求:空间复杂度 O(1),时间复杂度 O(n)

l利用hash集合具有冲突性,输入相同数据,会产生冲突,对链表环进行判断。

/*
 public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}
*/
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class Solution {

    public ListNode EntryNodeOfLoop(ListNode pHead) {
            Set<ListNode> set=new HashSet<>();//构造hash集合
            while(pHead!=null)
            {
                if(!set.add(pHead))//如若数据无法加入hash集合,则证明集合中已有该数据,尾环所在处。
                    return pHead;
                pHead=pHead.next;
            }
             return null;
    }
}
举报

相关推荐

0 条评论