刷題筆記11 輸出鍊錶倒數第k個結點

2021-08-31 16:25:06 字數 848 閱讀 4994

輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。

首先把頭結點賦值給p,如果頭結點不為零,則從0開始計算鍊錶的長度,不斷讓其指向下乙個結點。進而得到鍊錶的表長。

可能鍊錶長度會小於k,所以要判斷一下

然後用表長得到倒數第k個數,再遍歷一次鍊錶即可

/*

struct listnode

};*/

class solution

p = plisthead;

cnt -

= k;

if(cnt >=0)

return p;

}return

null;}

};

使用兩個指標,都指向頭結點。

乙個指標先遍歷到第k個結點,在這之前如果都不為空,那麼說明鍊錶的長度大於k

等到第乙個指標遍歷完k個結點後,第二個指標開始走,兩個指標一起走,這樣兩個指標就始終保持著同樣距離,等到第乙個指標為null的時候,第二個指標指向的結點就是倒數第k個結點了。

輸出鍊錶中倒數第k個結點

題目 輸入乙個單向鍊錶,輸出該鍊錶中倒數第k個結點。鍊錶的倒數第0個結點為鍊錶的尾指標。鍊錶結點定義如下 struct listnode coder lee 20120309 include include using namespace std struct listnode void creat...

輸出鍊錶中倒數第k個結點

鍊錶中倒數第k個結點 題目描述 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。思路 定義新結點從頭開始遍歷鍊錶,移動 k 次後停止,再定義新的結點指向煉表頭結點,兩個結點同時後移,直至前乙個為 null。注意 鍊錶可能一開始就是空的。如果 k 等於鍊錶長度,如1 2 3,k 3時應該返回原鍊錶1 2 3...

輸出鍊錶中倒數第 k 個節點

題目描述 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點 思路 1.得到鍊錶的長度 2.通過觀察可以發現當 cur 從 head 開始到倒數第 k 個節點所迴圈的次數 len k 3.所以退出迴圈時 cur 指的就是題目所求的節點 public class solution return len publ...