刪除鍊錶的結點

2021-10-08 17:50:51 字數 502 閱讀 7036

2.1  思路分析

判斷頭結點是否為空,為空則直接返回null;

判斷待刪除的元素是否為鍊錶的頭結點,如果是,則返回後面的所有結點;

不是1,2情況的話,遍歷鍊錶,確定待刪除結點之前的結點位置,這樣方便刪除,通過判斷當前結點的下乙個結點是否為最後乙個結點,若不是,就判斷是否為待刪除的結點,若不是待刪除的結點,那麼移動當前結點至下一結點;

退出迴圈後,若找到了,就以鍊錶的特性刪除結點。

2.2  **實現

class solution  else 

}//下面的迴圈作用於上面迴圈相同

/*while(cur.next != null && cur.next.val != val)

*/if(cur.next != null)

return head;}}

2.3  複雜度分析

刪除鍊錶結點

劍指offer18題 刪除鍊錶的節點 題目描述 給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。解題思路 該題在劍指offer中的原題是,給定乙個單鏈表的頭指標 指定結點指標,要求以o 1 的時間複雜度刪除該結點。解決方法為將待刪除結點的後繼結點的值 賦...

刪除鍊錶的結點

1.問題描述 給定鍊錶的頭結點和待刪除結點,要求刪除鍊錶的結點要求時間複雜度為o 1 來自 劍指offer 2.分析 我們都知道鍊錶的要想訪問某個結點必須要從頭結點挨個遍歷,並且單鏈表我們沒有指向前驅的結點,因此我們可以用狸貓換太子 用這個待刪除結點的下個結點裡面的內容,複製到這個待刪除結點,然後刪...

刪除鍊錶的結點

刪除鍊錶的結點 請編寫乙個函式,使其可以刪除某個鍊錶中給定的 非末尾的 節點,您將只被給予要求被刪除的節點。比如 假設該鍊錶為1 2 3 4,給定您的為該鍊錶中值為3的第三個節點,那麼在呼叫了您的函式之後,該鍊錶則應變成1 2 4。這道題讓我們刪除鍊錶的乙個節點,更通常不同的是,沒有給我們鍊錶的起點...