面试题23:链表中环的入口结点

Posted xlzfdddd

tags:

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

NowCoder

<?php
header("content-type:text/html;charset=utf-8");
/*
 * 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 P139
 *
 */
class ListNode{
    var $val;
    var $next = NULL;
    function __construct($x){
        $this->val = $x;
    }
}
function EntryNodeOfLoop($pHead)
{
    if($pHead == null){
        return null;
    }
    $fast = $pHead->next->next;
    $slow = $pHead->next;
    while($fast != $slow){   //如果相遇就停下,找到相遇的结点(这里的相遇包含没有环的情况,如果没有环,最后slow和fast的值都是null,也会停止循环)
        $fast = $fast->next->next;
        $slow = $slow->next;
    }
    $fast = $pHead;
    while($fast != $slow){
        $fast = $fast->next;
        $slow = $slow->next;
    }

    return $slow;
}
$head = new ListNode(1);
$head->next = new ListNode(2);
$head->next->next = new ListNode(3);
$head->next->next->next = new ListNode(4);
$head->next->next->next->next = new ListNode(5);
$head->next->next->next->next->next = new ListNode(6);
$head->next->next->next->next->next->next = $head->next->next->next;
print_r(EntryNodeOfLoop($head));

 

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

剑指Offer对答如流系列 - 链表中环的入口节点

剑指Offer - 面试题23:链表中环的入口节点

牛客网高频算法题系列-BM7-链表中环的入口结点

刷题记录-剑指offer23:链表中环的入口节点

剑指offer(C++)-JZ23:链表中环的入口结点(数据结构-链表)

剑指offer(C++)-JZ23:链表中环的入口结点(数据结构-链表)