template
<
typename t>
void
deletemiddlenode
(singlylinkednode
* middle)
singlylinkednode
* next = middle-
>
getnext()
; middle-
>
setvalue
(next-
>
getvalue()
);middle-
>
setnext
(next-
>
getnext()
);delete next;
}
這個問題比較簡單,刪除單向鍊錶第乙個和最後乙個節點之間的乙個節點,並且不知道頭結點的指標。給定的條件只能訪問將要被刪除的節點,引數middle為將要被刪除節點的指標。當該指標為空或者它的下乙個節點為空節點時,不滿足題設條件。如果滿足題設條件,演算法直接將當前將要被刪除節點的值賦值為它的下乙個節點的值,它的nex
tnext
next
指標賦值為它的下乙個節點的值nex
tnext
next
指標,然後將它的下乙個節點刪除即可。其實以上演算法也可以用來刪除滿足一定條件的單向鍊錶的的頭節點。若要刪除乙個單向鍊錶的最後乙個節點,該題無解。
演算法的時間和空間複雜度均為o(1).
leetcode刪除中間節點
實現一種演算法,刪除單向鍊錶中間的某個節點 即不是第乙個或最後乙個節點 假定你只能訪問該節點。輸入 單向鍊錶a b c d e f中的節點c 結果 不返回任何資料,但該鍊錶變為a b d e f address definition for singly linked list.class list...
2021 1 18 刪除結點 求中間節點
示例 1 輸入 head 4,5,1,9 val 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4 1 9.要點 設定乙個額外的結點,指向head作為標記,並方便遍歷 class solution ptemp ptemp next retur...
面試題 02 03 刪除中間節點
實現一種演算法,刪除單向鍊錶中間的某個節點 除了第乙個和最後乙個節點,不一定是中間節點 假定你只能訪問該節點。示例 輸入 單向鍊錶a b c d e f中的節點c 結果 不返回任何資料,但該鍊錶變為a b d e f 簡單的節點刪除,用下一節點的值和指標替換刪除節點的值和指標 definition ...