加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

[PHP] 数据结构-输出链表倒数第k个结点PHP实现

发布时间:2020-05-25 03:12:37 所属栏目:PHP 来源:互联网
导读:输入一个链表,输出该链表中倒数第k个结点。第一个指针走(k-1)步,到达第k个节点,两个指针同时往后移动,当第一个结点到达末尾的时候,第二个结点所在位置就是倒数第k个节点了?phpclass Node{public $data;public $next;}//创建一个链表$linkList=new Node();

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

==(=1;<=10;++=->data="aaa{}"->=->==

<span style="color: #0000ff">function find(<span style="color: #800080">$linkList,<span style="color: #800080">$k<span style="color: #000000">){
<span style="color: #008000">//<span style="color: #008000">速度快的指针
<span style="color: #800080">$fast=<span style="color: #800080">$linkList<span style="color: #000000">;
<span style="color: #008000">//<span style="color: #008000">速度慢的指针
<span style="color: #800080">$slow=<span style="color: #800080">$linkList<span style="color: #000000">;
<span style="color: #008000">//<span style="color: #008000">快指针先移动k-1步
<span style="color: #0000ff">for(<span style="color: #800080">$i=0;<span style="color: #800080">$i<<span style="color: #800080">$k-1;<span style="color: #800080">$i++<span style="color: #000000">){
<span style="color: #800080">$fast=<span style="color: #800080">$fast-><span style="color: #008080">next<span style="color: #000000">;
}
<span style="color: #0000ff">if(<span style="color: #800080">$fast-><span style="color: #008080">next==<span style="color: #0000ff">null<span style="color: #000000">){
<span style="color: #0000ff">return <span style="color: #0000ff">false<span style="color: #000000">;
}
<span style="color: #008000">//<span style="color: #008000">快慢指针一块移动
<span style="color: #0000ff">while(<span style="color: #800080">$fast-><span style="color: #008080">next!=<span style="color: #0000ff">null<span style="color: #000000">){
<span style="color: #800080">$fast=<span style="color: #800080">$fast-><span style="color: #008080">next<span style="color: #000000">;
<span style="color: #800080">$slow=<span style="color: #800080">$slow-><span style="color: #008080">next<span style="color: #000000">;
}
<span style="color: #0000ff">return <span style="color: #800080">$slow<span style="color: #000000">;
}

<span style="color: #800080">$knode=find(<span style="color: #800080">$linkList,2<span style="color: #000000">);
<span style="color: #008080">var_dump(<span style="color: #800080">$knode);

(Node) ["data"]=> (4) "aaa9""next"]=> (Node) ["data"]=> (5) "aaa10""next"]=>

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读