Q22鍊錶的倒數第k個節點

2021-10-04 20:21:17 字數 543 閱讀 6226

輸入乙個鍊錶,輸出該鍊錶中倒數第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 步,第二個指標...