题目描述:
- 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。
解题思路:
- 遍历链表,将链表中每一个节点存放进链表中,每次存放前,要判断链表是否包含当前链表,如果包含,则说明此链表是环链表的入口节点。如果当前节点为空,则说明此链表没有环。
代码实现:
import java.util.*;
public class Solution {
public ListNode EntryNodeOfLoop(ListNode pHead){
if (pHead == null || pHead.next == null) {
return null;
}
List<ListNode> listNodes = new LinkedList<>();
while (pHead != null) {
//如果链表中存在此链表,说明此节点为入口节点
if (listNodes.contains(pHead)) {
return pHead;
}
listNodes.add(pHead);
pHead = pHead.next;
}
return null;
}
}