LeetCode C 刪除鍊錶中的節點

2021-10-07 22:08:03 字數 879 閱讀 8018

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

現有乙個鍊錶 – 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.

說明:

鍊錶至少包含兩個節點。

鍊錶中所有節點的值都是唯一的。

給定的節點為非末尾節點並且一定是鍊錶中的乙個有效節點。

不要從你的函式中返回任何結果。

思路:

由於沒有辦法找到前節點,所以不能直接刪除該結點,只能是刪除下乙個節點,或者把該結點的後面的值往前移,本質與刪除下一節點相同,但是更浪費時間。

具體操作,將下一節點的值賦給該節點,再將該結點的子節點指向下下個節點即可。

**:

//刪除下乙個節點

void

deletenode

(listnode* node)

結果:

[1] 以南丶:leetcode(鍊錶) 刪除鍊錶中的節點(c++)

LeetCode c 回文鍊錶

題目如下 請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?思路一 首先讀題,不考慮高階情況的話,由於回文鍊錶的數值是對稱的。因此,我們可以遍歷一遍輸入的鍊錶,宣告...

Leetcode C 回文鍊錶

1.題目 請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2輸出 false示例 2 輸入 1 2 2 1輸出 true2.code definition for singly linked list.struct listnode class solution if n 1 n 0 return...

LeetCode C 環形鍊錶

給定乙個鍊錶,判斷鍊錶中是否有環。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。示例 1 輸入 head 3,2,0,4 pos 1 輸出 true 解釋 鍊錶中有乙個環,其尾部連線到第二個節點。示例 2 輸...