php输出0到5之间到数,php如何实现输出链表倒数第k个结点(代码实例)

本篇文章给大家带来的内容是关于php如何实现输出链表倒数第k个结点(代码实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

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

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

$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

}

}

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值