第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何刪除雙向鏈表中的所有節(jié)點(diǎn)?

如何刪除雙向鏈表中的所有節(jié)點(diǎn)?

Go
慕萊塢森 2022-12-26 10:29:13
我很好奇刪除雙向鏈表中所有節(jié)點(diǎn)的正確方法是什么。這是我的鏈表結(jié)構(gòu):type ListNode struct {    Data branch    Next *ListNode    Prev *ListNode}type doublyLinkedList struct {    Head *ListNode    Tail *ListNode    Size int}如果我只是將 Head & Tail 節(jié)點(diǎn)指向 Nil,它會工作嗎?func deleteAllNodes(dl *doublyLinkedList) {    dl.Head = nil    dl.Tail = nil    dl.Size = 0}如果是這樣,所有節(jié)點(diǎn)會發(fā)生什么?它會收集垃圾嗎?
查看完整描述

1 回答

?
慕絲7291255

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個贊

在引用計數(shù)環(huán)境中(Arc在 Rust、shared_ptrC++、Swift 等中),這可能會泄漏。

節(jié)點(diǎn)之間可能有引用,但沒有其他引用指向它們。在圖論術(shù)語中,被“刪除”的節(jié)點(diǎn)形成對象圖的一個組成部分,現(xiàn)在是一個斷開連接的圖。

任何具有跟蹤垃圾收集器(包括 Go)的環(huán)境都可以處理這個,沒問題。

首先,GC 將檢測內(nèi)存圖的所有連接組件(那些從根引用引用的對象,如全局變量、局部變量等)。這稱為“標(biāo)記”階段。然后,它將在第二個“掃描”階段刪除所有斷開連接的組件。https://en.wikipedia.org/wiki/Tracing_garbage_collection#Na%C3%AFve_mark-and-sweep


查看完整回答
反對 回復(fù) 2022-12-26
  • 1 回答
  • 0 關(guān)注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號