时间:2021-07-01 10:21:17 帮助过:2人阅读
输入一个链表,输出该链表中倒数第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个结点(代码实例)的详细内容,更多请关注Gxl网其它相关文章!