首页 >后端开发 >php教程 > 正文

php如何实现输出链表倒数第k个结点(代码实例)

原创2018-09-12 17:02:540652
本篇文章给大家带来的内容是关于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中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:php
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    作者信息
    推荐视频教程
  • PHP 新手入门教程PHP 新手入门教程
  • PHP+Mysql分页简单教程PHP+Mysql分页简单教程
  • php注册登录系统开发实战php注册登录系统开发实战
  • 视频教程分类