本文實例講述了PHP獲取鏈表中倒數(shù)第K個節(jié)點的方法。分享給大家供大家參考,具體如下:
問題
輸入一個鏈表,輸出該鏈表中倒數(shù)第k個結點。
解決思路
注意這個題目是返回節(jié)點,而不是返回值。返回值的話可以用棧來存儲。返回節(jié)點則不能這樣做。
設置兩個指針,先讓第一個指針移動k-1次。然后兩個指針同時移動,當?shù)谝粋€指針到達最后一個節(jié)點,第二個指針就在倒數(shù)第k個節(jié)點。
注意邊界:K長度可能超出鏈表長度,所以當?shù)谝粋€指針的next為空時,返回null
實現(xiàn)代碼
<?php
/*class ListNode{
var $val;
var $next = NULL;
function __construct($x){
$this->val = $x;
}
}*/
function FindKthToTail($head, $k)
{
if($head == NULL || $k ==0)
return NULL;
$pre = $head;
$last = $head;
for($i=1; $i<$k; $i++){
if($last->next == NULL)
return NULL;
else
$last = $last->next;
}
while($last->next != NULL){
$pre = $pre->next;
$last = $last->next;
}
return $pre;
}
更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP數(shù)據(jù)結構與算法教程》、《php程序設計算法總結》、《php字符串(string)用法總結》、《PHP數(shù)組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結》及《PHP數(shù)學運算技巧總結》
希望本文所述對大家PHP程序設計有所幫助。
【網(wǎng)站聲明】本站部分內容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯(lián)系我們刪除處理,感謝您的支持!