首頁 > 後端開發 > php教程 > php如何實現輸出鍊錶倒數第k個結點(程式碼實例)

php如何實現輸出鍊錶倒數第k個結點(程式碼實例)

不言
發布: 2023-04-04 07:14:01
原創
1399 人瀏覽過

這篇文章帶給大家的內容是關於php如何實現輸出鍊錶倒數第k個結點(程式碼實例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

輸入一個鍊錶,輸出該鍊錶中倒數第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
  }
}
登入後複製

 相關推薦:

PHP取得鍊錶中倒數第K個節點的方法

php實作單鍊錶的實例程式碼_PHP教學

以上是php如何實現輸出鍊錶倒數第k個結點(程式碼實例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板