LeetCode第十九題 鍊錶節點的刪除

2022-09-11 08:24:09 字數 703 閱讀 5827

remove nth node from end of list

問題簡介;給定鍊錶,從鍊錶末尾刪除第n個節點並返回其頭部

例:給定鍊錶:1-> 2-> 3-> 4-> 5,n = 2

從末尾刪除第二個節點後,鍊錶變為1-> 2-> 3-> 5

解法一:

先遍歷一遍鍊錶,得到鍊錶的長度,再將長度減去給定的n得到正序的索引,再遍歷一遍鍊錶,在正序的索引處連線下下結點

複雜度分析:

時間複雜度:o(n)取決於鍊錶的長度

空間複雜度:o(1)佔有的是固定的記憶體

解法二:也可以通過兩個變數來做,第一次遍歷將第乙個變數遍歷到給定的n處,第二次遍歷同時遍歷兩個變數,當第乙個變數遍歷到結尾時,第二個遍歷就是遍歷到倒序n的位置

小白刷題之路,請多指教— — 要麼大器晚成,要麼石沉大海

第十九章 19 1 1節練習

練習19.1 使用malloc編寫你自己的operator new size t 函式,使用free編寫operator delete void 函式。解答 這個也就參考書中實現吧。不過這裡我更傾向於使用模板來實現,不把new的引數寫死。練習19.2 預設情況下,allocator類使用operat...

第十九章 19 2 1節練習

練習19.3 已知存在如下的類繼承體系,其中每個類分別定義了乙個公有的預設建構函式和乙個虛析構函式 class a class b public a class c public b class d public b,public a 下面的哪個dynamic cast將失敗?a a pa new ...

面試記錄第十九節 (MVC)

答 m 業務邏輯處理 v 處理資料顯示的部分 c 控制器,activity處理使用者互動的問題 答 在android開發過程中,比較流行的開發框架,曾經採用的是mvc模式,好處就是便於ui介面的顯示和業務邏輯的分離。具體來說model層 用來業務邏輯處理,例如一些資料庫的操作 網路操作或者一些複雜的...