刪除單鏈表的給定節點(非末尾)

2021-09-12 11:40:55 字數 832 閱讀 2993

此刪除法,只給了需要刪除的那個節點!

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

示例 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.

解題思路:

因為給定的節點不是尾節點,所以我們可以將,需要刪除的節點之後節點的值,依次往前移動乙個。然後刪除最後乙個節點即可.

解題**:

class solution 

listnode head = node;

//將需要刪除的節點後面節點的值,依次賦給前乙個節點。

while (head.next.next != null)

//將最後乙個節點的值賦給倒數第二個節點

head.val = head.next.val;

//將最後乙個節點刪除

head.next = null;

}}

單鏈表刪除節點

給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。思路 刪除某個結點需要找到該結點的前乙個結點,由於單向鍊錶沒有指向前乙個結點的指標,所以不得不從頭指標開始遍歷鍊錶。顯然時間複雜度為o n 1 待刪除的節點不是尾節點的情況 首先把待刪除的節點的前乙個節點的...

單鏈表刪除重複節點

學後一年重看資料結構,確實難啊,搞了半天才搞明白這個小問題。include include include typedef char elemtype typedef struct node 結點型別定義 node,linklist linklist為結構指標型別 void createfromta...

刪除單鏈表中指定的節點

include stdafx.h include include include using namespace std struct node 建立單鏈表 node createsinglelist int arr,int n return head 輸出單鏈表 void print node h...