輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。
/*function listnode(x)
*/function
findkthtotail(head, k)
//用兩個指標指向頭結點
var p1 = head,p2 = //
中途如果p1的下乙個節點為空,說明鍊錶中不存在第k個結點,返回nullhead;
//如果p1的下乙個結點不為空,將p1指向下乙個結點,一直到p1指向第k個結點
//中途如果p1的下乙個節點為空,說明鍊錶中不存在第k個結點,返回null
for(var i = 1;i < k;i++)
p1 =p1.next;
}//p1和p2一起向後指,當p1指向最後乙個結點時,p2所指的即為第k個結點
while(p1.next != null
)
return
p2;}
劍指Offer (14)鍊錶中倒數第k個結點
題目描述 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。實現如下 最後乙個節點定義為倒數第乙個節點 1 2 3 4 5 p s p s eg.尋找倒數第3個節點 k 1 2 要想一次遍歷找到倒數第k個節點,關鍵在於最後乙個節點與倒數第k個節點之間相差k 1個節點 所以要保證兩個指標之間一直保持k 1個節...
劍指offer 14 鍊錶中倒數第k個結點
輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。兩個指標,先讓第乙個指標和第二個指標都指向頭結點,然後再讓第乙個指正走 k 1 步,到達第k個節點。然後兩個指標同時往後移動,當第乙個結點到達末尾的時候,第二個結點所在位置就是倒數第k個節點處。public class listnode public cla...
劍指offer14 鍊錶中倒數第k個結點
題目描述 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。解決思路 1.備份初始結點 2.計數結點個數 3.判斷是否超出 4.正序遍歷得到第count k個結點 public class solution if countreturn null for int i 0 i這種方法比較笨拙,相當於正序遍歷了...