在O 1 時間複雜度刪除鍊錶節點

2021-07-29 09:00:44 字數 997 閱讀 5021

給定乙個單鏈表中的乙個等待被刪除的節點(非表頭或表尾)。

請在在o(1)時間複雜度刪除該鍊錶節點。

給定1->2->3->4,和節點3,刪除

3之後,鍊錶應該變為1->2->4

因為給定節點在鍊錶的中間,所以不可能用一步步迭代找到這個節點的前驅,那就得換個思路來思考這個問題。題目並未說不可以更改節點的元素,所以可以考慮把後乙個節點資料覆蓋到當前結點並且把後邊的那個節點刪掉,這樣就可以實現刪除鍊錶節點了。

/**

* definition of listnode

* class listnode

* }

*/

class solution

if (node->next!= null)

} };

我在做這個題的時候剛剛接觸鍊錶,對鍊錶的性質和操作都不太熟悉,這個題還是比較簡單的,當時就因為語法錯誤就錯了好幾次,而且思考的並不太全面,只想到了一般的情況,把最簡單的(空鍊錶)都給漏掉了。所以在做題的要優先考慮特殊情況,然後再考慮一般情況,一塊整合成**。

在O 1 時間複雜度刪除鍊錶節點

題目 給定乙個單鏈表中的乙個等待被刪除的節點 非表頭或表尾 請在在o 1 時間複雜度刪除該鍊錶節點。思路 給定乙個節點的地值node,想要將它刪除,最好的方法就是下乙個節點覆蓋這個節點,這個節點的資訊就不存在了,就相當於刪掉了這個節點。如此一來node的下乙個節點有了兩個一摸一樣的節點儲存它的資訊,...

在O(1)時間複雜度刪除鍊錶節點

1.問題描述 給定乙個單鏈表中的乙個等待被刪除的節點 非表頭或表尾 請在在o 1 時間複雜度刪除該鍊錶節點。樣例給定1 2 3 4,和節點3,刪除 3 之後,鍊錶應該變為1 2 4。2.解題思路 首先判空,然後定義乙個新的節點指向node 的下乙個節點,然後用node next覆蓋node,刪除新的...

在O 1 時間複雜度刪除鍊錶節點

一.題目描述 給定乙個單鏈表中的乙個等待被刪除的節點 非表頭或表尾 請在o 1 時間複雜度刪除該鍊錶節點。樣例 給定 1 2 3 4,和節點 3,刪除 3 之後,鍊錶應該變為 1 2 4。二.解題思路 把將要刪除的節點的數值改為它下乙個節點的數值,再將其下乙個節點覆蓋.三.實現 definition...