輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。 最後乙個為倒數第1個。遍歷一遍得到鍊錶長度,再遍歷一遍得到倒數第幾個,複雜度為o(n
2)
o(n^2)
o(n2)
只遍歷一遍的方法為 ,維持兩個指標,兩個指標 差為 k-1
然後同時往前走,第乙個走到尾,第二個正好就是倒數第k個。
/*
struct listnode
};*/
class
solution
while
(pb-
>next!=
null
)return pa;}}
;
/*
struct listnode
};*/
class
solution
while
(true
)return p2;}}
;
鍊錶倒數第k個節點
兩個指標一前一後,相距k即可。include include using namespace std struct linknode typedef linknode linklist void insertlist linklist list int data else linknode rese...
鍊錶 倒數第k個節點
問題 刪除倒數第k個節點 鏈結 雙指標法,開始時p1,p2都指向頭節點,先讓p2走k步,然後p1和p2一起走,當p2指向null時,p1就指向倒數第k個節點了 definition for singly linked list.struct listnode class solution retur...
鍊錶的倒數第k個節點
鍊錶的倒數第k個節點 即鍊錶從頭開始的第 n k 1 個節點 n為鍊錶節點總數。1 遍歷兩次鍊錶 第一次統計出鍊錶的節點數,第二次從頭節點開始往後走 n k 1 步即是倒數第k個節點 2 遍歷一次鍊錶 使用兩個指標p1和p2,開始均指向頭節點 第乙個指標p1從頭節點開始往後走 k 1 步,第二個指標...