[劍指 offer 22. 鍊錶中倒數第k個節點]
難度 簡單
輸入乙個鍊錶,輸出該鍊錶中倒數第k個節點。為了符合大多數人的習慣,本題從1開始計數,即鍊錶的尾節點是倒數第1個節點。例如,乙個鍊錶有6個節點,從頭節點開始,它們的值依次是1、2、3、4、5、6。這個鍊錶的倒數第3個節點是值為4的節點。
示例:
給定乙個鍊錶: 1->2->3->4->5, 和 k = 2.
返回鍊錶 4->5.
解法:雙指標
前指標 former 、後指標 latter ,雙指標都指向頭節點 head 。
構建雙指標距離: 前指標 latter 先向前走 k 步(結束後,雙指標 former 和 latter 間相距 k 步)。
同時移動移動: 迴圈中,雙指標 former 和 latter 每輪都向前走一步,直至 latter 走過鍊錶 尾節點 時跳出(跳出後, former 與尾節點距離為 k-1,即 former 指向倒數第 k 個節點)。
/**
* definition for singly-linked list.
* public class listnode
* }*/class
solution
while
(latter != null)
return former;
}}
劍指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 ...
劍指 Offer 22 鍊錶中倒數第k個節點
劍指 offer 22.鍊錶中倒數第k個節點 難度簡單56收藏分享切換為英文關注反饋 輸入乙個鍊錶,輸出該鍊錶中倒數第k個節點。為了符合大多數人的習慣,本題從1開始計數,即鍊錶的尾節點是倒數第1個節點。例如,乙個鍊錶有6個節點,從頭節點開始,它們的值依次是1 2 3 4 5 6。這個鍊錶的倒數第3個...