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

2022-06-03 09:54:08 字數 550 閱讀 6224

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

題解:1、普通解法,先遍歷一遍計算鍊錶長度,然後遍歷到倒數第k個節點;

2、只遍歷一遍,使用雙指標,使得頭尾指標位差為k,那麼當尾指標為空時,頭指標就是倒數第k個位置。

1

//遍歷兩次,垃圾

2class

solution01

13if (listlenght < k)return

res;

14 res =plisthead;

15int nums = 0;16

while (nums < (listlenght -k))

1721

return

res;22}

23};

2425

//遍歷一次,雙指標

26class

solution02

39if (i < k)return

nullptr;

40return

l; 41}

42 };

劍指Offer 24 反轉鍊錶

定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。例 輸入 1 2 3 4 5 none 輸出 5 4 3 2 1 none 雙指標遍歷鍊錶,將當前節點的next設為前乙個節點。注意儲存當前節點的next來遍歷。時間複雜度 o n 空間複雜度 o 1 def reverse l...

劍指offer24 反轉鍊錶

定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出反轉後鍊錶的頭結點。樣例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null思路 初始化乙個新的頭節點new head,然後用尾插法把原始鍊錶中的結點插入新的頭節點。最後return new head next.acwing 3...

劍指offer24 反轉鍊錶

定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出轉換後的頭結點。首先,從題目中可得知為單鏈表結構,只有指向下乙個元素的指標。而要完成整個鍊錶的反轉則需要將所有next指標進行反轉。定義3個指標,分別指向當前遍歷的節點 它的前乙個節點以及後乙個節點。pnode ppre pre pnode phe...