單鏈表取倒數第n個元素002

2021-10-14 07:56:26 字數 293 閱讀 3878

給出乙個單鏈表,讓取出倒數第n個元素,

思路1:使用雙指標,

思路1.1 :使用乙個滑動視窗,然後往後移動,當滑動視窗的右邊界到鍊錶終點時候,滑動視窗的第乙個元素就是結果了!,不過滑動視窗的值要更新,操作複雜。

思路2:使用乙個vector把整個鍊錶的元素存起來,然後根據隨機訪問特性,根據下標把元素給取出來。此時的空間複雜度是:o(m),m是鍊錶的長度

優化:vector的空間複雜度:

可以只開乙個陣列長度為n,然後迴圈訪問,當把單鏈表最後乙個元素存進來的時候,陣列的當前元素的下乙個元素,就是了!

筆試or面試 尋找單鏈表倒數第n個元素

在各種面試筆試中,單鏈表考察的最多。其中有一道經典的題目 尋找單鏈表倒數第n個元素 如果僅僅是這麼問,大多數人想到這不是很簡單麼 先遍歷整個鍊錶獲知整個鍊錶長度l,然後再l n 1個節點就是所求節點。但很顯然面試官不滿足於這種問題,而是 一次遍歷尋找單鏈表倒數第n個元素 這樣的話,該如何找到思路呢?...

刪除單鏈表倒數第n個節點

如何刪除單鏈表中的倒數第n個節點?先遍歷一遍單鏈表,計算出單鏈表的長度,然後,從單鏈表頭部刪除指定的節點。description 刪除單鏈表倒數第n個節點,常規解法.param head param n return listnode public static listnode removenth...

單鏈表輸出倒數第k個元素

這個演算法已經有不少人寫過了,但是為了考研後期複習還是在此記錄一下自己的心得。方法有如下幾種 1 遍歷單鏈表兩次,第一次獲取鍊錶總長度,第二次尋找倒數第k個元素就很簡單了。但是該方法需要遍歷兩次鍊錶。2 遍歷單鏈表並記錄長度,將每個元素存入順序表中,然後通過下標獲取倒數第k個元素。該方法只需遍歷一次...