給出乙個鍊錶如何找到倒數第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...