劍指 Offer22鍊錶 鍊錶中倒數第k個節點

2021-10-13 10:22:39 字數 446 閱讀 8499

題目:

輸入乙個鍊錶,輸出該鍊錶中倒數第k個節點。為了符合大多數人的習慣,本題從1開始計數,即鍊錶的尾節點是倒數第1個節點。例如,乙個鍊錶有6個節點,從頭節點開始,它們的值依次是1、2、3、4、5、6。這個鍊錶的倒數第3個節點是值為4的節點。

示例:給定乙個鍊錶: 1->2->3->4->5, 和 k = 2.

返回鍊錶 4->5.

分析:考慮使用快慢雙指標

思路:兩個指標起始都在煉表頭,慢指標先不動,快指標走k步後,慢指標再開始移動,當快指標到鍊錶尾時慢指標恰好到達鍊錶倒數第k個結點。

**實現:

時間複雜度o(n),空間複雜度o(1)

class

solution

while

(fast != null)

return slow;

}}

劍指offer(22) 刪除鍊錶中重複元素

目錄 題型一 不保留重複節點 c python 題型二 保留重複節點 題目描述 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 思路分析 遍歷節點不為空時,當p節點和它下乙個節點的值相同時,q...

劍指offer 22 鍊錶中倒數第K個結點

這道題的題目可以描述為 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。typedef int datatype typedef struct listnode listnode 初始化 void listinit listnode ppfirst 這道題的普通解題思路分為三步 1.定義兩個指標forwa...

劍指offer 22 鍊錶中倒數第k個節點

輸入乙個鍊錶,輸出該鍊錶中倒數第k個節點。為了符合大多數人的習慣,本題從1開始計數,即鍊錶的尾節點是倒數第1個節點。例如,乙個鍊錶有6個節點,從頭節點開始,它們的值依次是1 2 3 4 5 6。這個鍊錶的倒數第3個節點是值為4的節點。示例 給定乙個鍊錶 1 2 3 4 5,和 k 2.返回鍊錶 4 ...