zoukankan      html  css  js  c++  java
  • [PHP] 数据结构-输出链表倒数第k个结点PHP实现

    输入一个链表,输出该链表中倒数第k个结点。第一个指针走(k-1)步,到达第k个节点,两个指针同时往后移动,当第一个结点到达末尾的时候,第二个结点所在位置就是倒数第k个节点了

    <?php
    class Node{
            public $data;
            public $next;
    }
    //创建一个链表
    $linkList=new Node();
    $linkList->next=null;
    $temp=$linkList;
    for($i=1;$i<=10;$i++){
            $node=new Node();
            $node->data="aaa{$i}";
            $node->next=null;
            $temp->next=$node;
            $temp=$node;
    }
    //输入一个链表,输出该链表中倒数第k个结点。
    
    function find($linkList,$k){
            //速度快的指针
            $fast=$linkList;
            //速度慢的指针
            $slow=$linkList;
            //快指针先移动k-1步
            for($i=0;$i<$k-1;$i++){
                    $fast=$fast->next;
            }   
            if($fast->next==null){
                    return false;
            }   
            //快慢指针一块移动
            while($fast->next!=null){
                    $fast=$fast->next;
                    $slow=$slow->next;
            }   
            return $slow;
    }
    
    
    $knode=find($linkList,2);
    var_dump($knode);
    object(Node)#10 (2) {
      ["data"]=>
      string(4) "aaa9"
      ["next"]=>
      object(Node)#11 (2) {
        ["data"]=>
        string(5) "aaa10"
        ["next"]=>
        NULL
      }
    }
  • 相关阅读:
    STL整理之map
    链表及数组模拟链表
    树链剖分详解
    Luogu P3879 【[TJOI2010]阅读理解】
    Luogu P2727 【01串 Stringsobits】
    CF1200D 【White Lines】
    Luogu P4945 【最后的战役】
    Luogu P4944 【PION贪吃蛇】
    Luogu P2426 【删数】
    P2163 【[SHOI2007]园丁的烦恼】
  • 原文地址:https://www.cnblogs.com/taoshihan/p/9585422.html
Copyright © 2011-2022 走看看