劍指offer15 鍊錶的倒數第k個節點

2021-09-13 19:14:02 字數 552 閱讀 4294

題目

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

思路

為了能夠只遍歷一次就能找到倒數第k個節點,可以定義兩個指標:

第乙個指標從鍊錶的頭指標開始遍歷向前走k-1,第二個指標保持不動;

從第k步開始,第二個指標也開始從鍊錶的頭指標開始遍歷;

由於兩個指標的距離保持在k-1,當第乙個(走在前面的)指標到達鍊錶的尾結點時,第二個指標(走在後面的)指標正好是倒數第k個結點。

**

/*

struct listnode

};*/

class solution

while(ahead->next!=nullptr)

return bhead;

}};

劍指offer 15 鍊錶倒數第k個結點

輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。頭節點,有指標逐個指向下面的結點,就像下面的樣子。這個鍊錶的左邊是頭節點,右邊是尾結點,從頭到尾可以遍歷,但反過來不行。用兩個指標,第乙個指標走 k 1 步,到第k個結點,此時第二個指標在起點。然後,兩個指標同時走,第乙個指標到尾結點時,第二個指標恰好到第倒...

劍指offer 15 鍊錶中倒數第k個結點

package listtest.findknode 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。思路 定義兩個指標,第乙個指標從鍊錶的頭指標開始遍歷向前走k 1,第二個指標保持不動,從第k步開始,第二個指標也開始從鍊錶的頭指標開始遍歷。兩個指標距離保持在k 1,當第乙個指標到達鍊錶的尾結點時,第二個...

劍指Offer15鍊錶中倒數第k個結點

題目 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點,為了符合大多數人的習慣,本題從1開始計數,即鍊錶的尾結點是倒數第乙個結點,例如 乙個鍊錶有6個結點,從頭結點開始他們的值依次是1,2,3,4,5,6.這個鍊錶的倒數第三個結點是值為4的結點。分析 這是乙個很經典的老的題,如果第一次看到這個題的話,可能想...