成人免费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

算法時間表示法

2020-11-10 09:17:03

Redis

2023-07-27 07:28:04

存儲鏈表HashSet

2024-04-25 08:33:25

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

2025-04-21 03:03:00

2021-01-05 10:41:42

算法時間空間

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-01-28 08:20:41

鏈表空間復雜度

2024-10-16 11:28:42

2021-10-15 09:43:12

希爾排序復雜度

2021-09-17 10:44:50

算法復雜度空間

2024-05-20 09:04:29

時間復雜度代碼

2020-12-30 05:35:56

數據結構算法

2021-04-25 14:29:02

數據結構動態數組時間復雜度

2014-12-10 09:23:14

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 伊人二区| 国产精品国产三级国产aⅴ原创 | 欧美激情一区二区三区 | 精品国产一区二区三区免费 | 亚洲成人免费 | 成人av高清在线观看 | 久久区二区 | 亚洲精品视频二区 | 婷婷色国产偷v国产偷v小说 | 国产高清一二三区 | 成人av在线网站 | 日本aa毛片a级毛片免费观看 | 国产精品久久久久久久久久尿 | 亚洲一区二区中文字幕在线观看 | 国产一区二区三区久久久久久久久 | 国产精品久久久久久久久久久久久久 | 人人干97| 看片一区 | 欧美lesbianxxxxhd视频社区 | 黄色欧美 | 91久久综合亚洲鲁鲁五月天 | 国产91久久久久蜜臀青青天草二 | 亚洲精品一区中文字幕 | 免费黄色片在线观看 | 欧美中文字幕在线 | 久久之精品| 欧洲妇女成人淫片aaa视频 | 91亚洲欧美 | 成人在线视频一区 | 一级毛片色一级 | 亚洲精品大片 | 精品国产不卡一区二区三区 | 福利精品 | 久久久久久国模大尺度人体 | 国产999精品久久久影片官网 | 天天爽夜夜爽精品视频婷婷 | 欧美日韩一区二区在线观看 | 久久久久久久久综合 | 国产综合久久久久久鬼色 | 欧美精品一区在线观看 | 国产精品亚洲片在线播放 |