|
输入一个链表,输出该链表中倒数第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"]=>
(编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|