php输出0到5之间到数,php如何实现输出链表倒数第k个结点(代码实例)
本篇文章給大家?guī)淼膬?nèi)容是關(guān)于php如何實(shí)現(xiàn)輸出鏈表倒數(shù)第k個(gè)結(jié)點(diǎn)(代碼實(shí)例),有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。
輸入一個(gè)鏈表,輸出該鏈表中倒數(shù)第k個(gè)結(jié)點(diǎn)。第一個(gè)指針走(k-1)步,到達(dá)第k個(gè)節(jié)點(diǎn),兩個(gè)指針同時(shí)往后移動(dòng),當(dāng)?shù)谝粋€(gè)結(jié)點(diǎn)到達(dá)末尾的時(shí)候,第二個(gè)結(jié)點(diǎn)所在位置就是倒數(shù)第k個(gè)節(jié)點(diǎn)了
class Node{
public $data;
public $next;
}
//創(chuàng)建一個(gè)鏈表
$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;
}
//輸入一個(gè)鏈表,輸出該鏈表中倒數(shù)第k個(gè)結(jié)點(diǎn)。
function find($linkList,$k){
//速度快的指針
$fast=$linkList;
//速度慢的指針
$slow=$linkList;
//快指針先移動(dòng)k-1步
for($i=0;$i
$fast=$fast->next;
}
if($fast->next==null){
return false;
}
//快慢指針一塊移動(dòng)
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
}
}
相關(guān)推薦:
總結(jié)
以上是生活随笔為你收集整理的php输出0到5之间到数,php如何实现输出链表倒数第k个结点(代码实例)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汽车内饰胶水弄衣服上,怎么清除
- 下一篇: 汽车临牌全国通用吗?