如何找到鍊錶的倒數第k個元素

2021-07-01 22:30:23 字數 378 閱讀 5835

給出乙個鍊錶如何找到倒數第k個元素,有兩種思路,1.直接遍歷鍊錶統計出節點個數n.然後再從頭遍歷到第n-k個元素。但此時最壞時間複雜度有o(2n)非常爛。

2.使用一前一後兩個指標,讓第乙個先走k步,然後兩個指標一起走 直到前乙個指標到達終點。

#include using namespace std;

struct listnode

;listnode *findlastkthnode(listnode * head,int k)

if(front==null)

return null;

while(front!=null)

return behind;

}

鍊錶中倒數第k個元素

時間限制 1秒 空間限制 32768k 熱度指數 301751 本題知識點 鍊錶輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。class solution while phead next null return ptail 解題思路 傳統方法是從左到右遍歷一遍,得出鍊錶中的結點總數,然後計算倒數第k個...

找出鍊錶倒數第K個元素

思路 可設兩個頭指標p1和p2,當p2開始向前走,當走的步數為k時,p1開始走,此時當p2走到結尾時,p1所指的位置正好為倒數第k個元素的位置 class listnode override public string tostring return sb.tostring public stati...

python鍊錶 找到鍊錶的倒數第k個節點

輸入 1 2 3 4 5 6 7,k 3 輸出 節點5 思路 方法1 兩次順序遍歷,第一次求得鍊錶長度size,第二次遍歷到size k的位置,cur.next就是對應的節點 方法2 引入兩個相隔k個長度的外部變數cur1,cur2,當cur2.next為none時,cur1正好是倒數第k個節點 d...