刪除鍊錶中的結點

2021-09-10 01:54:39 字數 948 閱讀 4195

1. 題目描述

請編寫乙個函式,使其可以刪除某個鍊錶中給定的(非末尾)節點,你將只被給定要求被刪除的節點。

現有乙個鍊錶 -- head = [4,5,1,9],它可以表示為:

示例 1:

輸入:head = [4,5,1,9], node = 5輸出:[4,1,9]解釋:給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4 -> 1 -> 9.
示例 2:

輸入:head = [4,5,1,9], node = 1輸出:[4,5,9]解釋:給定你鍊錶中值為 1 的第三個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4 -> 5 -> 9.
說明:2. **實現

/**

* definition for singly-linked list.

* struct listnode ;

*/void deletenode(struct listnode* node)

3. 收穫從煉表裡刪除乙個節點node的最常見方法是修改之前節點的next指標,使其指向之後的節點。

但是我們無法訪問想要刪除的節點之前的節點。

所以,我們將想要刪除的節點的值替換為它後面節點中的值,再刪除它之後的節點。

刪除鍊錶中的結點

題目一 給你乙個鍊錶,刪除鍊錶的倒數第 n 個結點,並且返回鍊錶的頭結點。高階 你能嘗試使用一趟掃瞄實現嗎?示例 1 輸入 head 1,2,3,4,5 n 2 輸出 1,2,3,5 示例 2 輸入 head 1 n 1 輸出 示例 3 輸入 head 1,2 n 1 輸出 1 解法一 利用乙個佇列...

刪除鍊錶A中與鍊錶B結點相同的結點

題目描述 有兩串鍊錶表示為a和b,刪除鍊錶a中的結點,滿足刪除條件的結點是該結點與鍊錶b中某結點的值相同。如下 include using namespace std typedef struct list plist int deletenode plist plist void createli...

刪除鍊錶結點

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