55.链表中环的入口结点

Posted chanaichao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了55.链表中环的入口结点相关的知识,希望对你有一定的参考价值。

题目描述

给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。

题目解答

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

    ListNode(int val) {
        this.val = val;
    }
}
*/
public class Solution {

    public ListNode EntryNodeOfLoop(ListNode pHead){
        if(pHead==null || pHead.next==null){
            return null;
        }

        ListNode pFast=pHead;
        ListNode pSlow=pHead;
        while(pFast!=null && pFast.next!=null) {
            pSlow = pSlow.next;
            pFast = pFast.next.next;
            if(pSlow==pFast){
                pFast=pHead;
                while(pFast!=pSlow){
                    pFast=pFast.next;
                    pSlow=pSlow.next;
                }
                if(pFast==pSlow){
                    return pSlow;
                }
            }
        }
        return null;
    }
}

快慢指针

 

以上是关于55.链表中环的入口结点的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer 55. 链表中环的入口结点

55剑指offer--链表中环的入口结点

55.链表中环的入口结点(python)

剑指offer 55.链表 链表中环的入口结点

剑指offer55:链表中环的入口结点

剑指Offer55:链表中环的入口结点(Java)