請編寫乙個函式,使其可以刪除某個鍊錶中給定的(非末尾)節點,你將只被給定要求被刪除的節點。
現有乙個鍊錶 – 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 輸...