标签:oop || list lse try false imp turn port
题目描述:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。
思路1:双指针问题
public class Solution { ListNode EntryNodeOfLoop(ListNode pHead){ if(pHead==null||pHead.next==null) return null; ListNode p1=pHead; ListNode p2=pHead; while(p1!=null||p1.next!=null){ p1=p1.next; p2=p2.next.next; if(p1==p2){ p1=pHead; while(p1!=p2){ p1=p1.next; p2=p2.next; } if(p1==p2) return p1; } } return null; } }
思路2:使用HashSet
import java.util.HashSet; public class Solution { public ListNode EntryNodeOfLoop(ListNode pHead){ HashSet<ListNode> set=new HashSet<ListNode>(); while(pHead!=null){ //添加重复值返回false if(!set.add(pHead)) return pHead; pHead=pHead.next; } return null; } }
标签:oop || list lse try false imp turn port
原文地址:https://www.cnblogs.com/Aaron12/p/9537619.html