zoukankan      html  css  js  c++  java
  • 面试题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));
  • 相关阅读:
    UVa 11181
    UVa 10491
    UVa 1636
    UVa 1262
    UVa 10820
    UVa 1635
    UVa 12716
    [2019杭电多校第六场][hdu6635]Nonsense Time
    [2019杭电多校第五场][hdu6630]permutation 2
    [2019杭电多校第五场][hdu6629]string matching(扩展kmp)
  • 原文地址:https://www.cnblogs.com/xlzfdddd/p/10198299.html
Copyright © 2011-2022 走看看