亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

LinkedList刪除:為什么我們不用前一個覆蓋頭部?

LinkedList刪除:為什么我們不用前一個覆蓋頭部?

烙印99 2024-01-28 16:36:17
檢查我的數據結構,以滿足一些新的工作面試要求。所以我有一個鏈表的刪除方法。public Link delete(int key) {    Link current = first;    Link previous = first;     while(current.iData != key) {        if(current.next == null)             return null;        else {            previous = current;             current = current.next;        }    }    if(current == first)        first = first.next;    else        // just bypass it        previous.next = current.next;    return current;}我想到目前為止我已經明白了。但我對這條線感到好奇。// just bypass itprevious.next = current.next;為什么我們不使用 覆蓋head(在本例中表示為first)previous?或者會是錯誤的邏輯嗎?喜歡// just bypass itprevious.next = current.next;first=previous;我的意思是previous和current只是迭代列表的指針。而刪除后的真實數據位于右側first?抱歉,如果這樣想會很奇怪。有時我奇怪的直覺只是在研究算法時出現,主要是因為我有點弱
查看完整描述

1 回答

?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

這樣做會導致鏈表丟失前一個節點之前的所有節點。如果您有一個包含以下值的鏈接列表:

[1, 2, 3, 4, 5, 6, 7, 8]

當你打電話時delete(7),你的頭會指向6,然后你就會得到一個 的鏈接列表[6, 8]。


查看完整回答
反對 回復 2024-01-28
  • 1 回答
  • 0 關注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號