成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

圖解:單鏈表刪除,不遍歷鏈表也能做(時間復雜度O(1))

開發 開發工具
在開始這個問題之前,先想想,如果給定單鏈表中的某個結點,如何在單鏈表中刪除該節點?

 

在開始這個問題之前,先想想,如果給定單鏈表中的某個結點,如何在單鏈表中刪除該節點?

對于一個單鏈表,它每個結點的數據結構除了存儲自身的數據之外,還需要記錄鏈表上,下一個結點的地址,通常我們將這個地址稱之為后續指針 next。

 

那如上圖所示,我想刪除其中的 C 結點,需要做什么操作?很簡單,將 B 結點的后續指針 next 指向 D 結點即可。

 

此處應該清晰了,要刪除鏈表上的某個結點,我們需要知道三個結點:

  • 待刪除的結點。
  • 待刪除結點的前驅結點。
  • 待刪除結點的后續結點。

思路:實際刪除下一個結點

再來回顧最開始的問題,當我們已知某個結點的時候,它的后續結點我們也是知道的。唯一的問題,就是他的前驅結點我們不知道。

最簡單的解決方法,就是將鏈表遍歷一遍,獲得待刪除結點的前驅結點,對其進行操作。

當涉及到遍歷鏈表的時候,時間復雜度妥妥的變成 O(n),這就與題不符了。

而問題主要卡在了,我們如何知道待刪除結點的前驅結點。試著換一個思路想想,我們只需要刪除該結點存儲的數據,而并不是刪除該結點對應地址中的內容。

那么就可以將待刪除結點的數據,和它的后續結點的數據進行互換,然后對它的后續結點進行刪除操作,以此來達到 O(1) 時間復雜度的單鏈表刪除。

 

問題:待刪除節點是***一個節點

這個思路還存在一個問題,我們實際刪除的是待刪除節點的下一個節點。還記得前面說,刪除單鏈表中的某個結點,實際上是需要知道三個結點的。

那么,如果刪除的結點,是單鏈表的***一個結點,怎么辦?

這時我們仍然需要從鏈表的頭結點開始遍歷,得到待刪除節點的前驅節點,并完成刪除操作,時間復雜度恢復到 O(n)。

而題目要求我們需要在 O(1) 的時間復雜度內完成刪除操作,這樣是不是不符合題目要求呢?

其實不然,假設單鏈表總共有 n 個節點,這種算法在 n-1 的情況下時間復雜度都是 O(1),只有在待刪除結點為單鏈表的***一個結點時,時間復雜度才會恢復到 O(n),那么平均時間復雜度 [(n-1)*O(1)+O(n)]/n,計算下來仍然為 O(1)。

【本文為51CTO專欄作者“張旸”的原創稿件,轉載請通過微信公眾號聯系作者獲取授權】

 

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2022-02-13 20:04:04

鏈表節點代碼

2022-10-20 08:51:40

跳表復雜度索引

2020-11-30 06:26:31

算法時間表示法

2024-04-25 08:33:25

算法時間復雜度空間復雜度

2020-11-10 09:17:03

Redis

2023-07-27 07:28:04

存儲鏈表HashSet

2021-01-05 10:41:42

算法時間空間

2025-04-21 03:03:00

2009-07-09 10:45:16

C#基本概念復雜度遞歸與接口

2019-11-18 12:41:35

算法Python計算復雜性理論

2020-02-09 17:30:54

反轉鏈表程序員節點

2020-09-08 15:40:58

算法快速排序堆排序

2021-09-17 10:44:50

算法復雜度空間

2021-10-15 09:43:12

希爾排序復雜度

2024-05-20 09:04:29

時間復雜度代碼

2021-01-28 08:20:41

鏈表空間復雜度

2024-10-16 11:28:42

2020-12-30 05:35:56

數據結構算法

2014-12-10 09:23:14

2021-04-25 14:29:02

數據結構動態數組時間復雜度
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色大片在线视频 | 国产精品久久久久久久久久久久久 | 日韩欧美在线一区二区 | 色必久久| 欧美日韩黄 | 国产伦一区二区三区 | 日韩一区二区视频 | 国产在线一区二区三区 | 精品成人一区 | 在线婷婷| 欧美九九 | 亚洲第一av | 国产成人高清视频 | 精品一二区 | 亚洲区中文字幕 | 午夜欧美一区二区三区在线播放 | 一区二区三区国产精品 | 中文字幕精品一区二区三区精品 | 欧美激情精品久久久久 | 精品久久一区二区 | 日韩在线一区二区 | 精品精品视频 | 伊人网综合在线观看 | 国产一区二区 | 亚洲精品乱码久久久久久按摩 | av一区二区三区四区 | a亚洲精品 | 国产国产精品久久久久 | 欧美一级欧美一级在线播放 | 一二区视频 | 亚洲精品白浆高清久久久久久 | 国产免费一区二区 | 精品国产一区二区三区观看不卡 | 99久久日韩精品免费热麻豆美女 | 综合久久av| aaaaaa大片免费看最大的 | 91成人小视频 | 天天躁日日躁狠狠的躁天龙影院 | 风间由美一区二区三区在线观看 | 九色一区 | 日韩视频在线观看 |