题目:
给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。
知识点:
Set集合:无序、不可重复
添加:add(元素)。包含:boolean contains(元素);
思路:
将不重复的结点加入set中,且结点不能为null,将结点后移
1)因set中包含结点结束循环,返回的结点就是环的入口
2)因结点为null结束循环,说明没有环,返回null
答案:
import java.util.*;
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public ListNode EntryNodeOfLoop(ListNode pHead)
{
Set<ListNode> s = new HashSet<ListNode>();
while(!s.contains(pHead)&&pHead!=null){
s.add(pHead);
pHead = pHead.next;
}
return pHead;
}
}