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

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

有人可以解釋這個if循環來刪除線性列表中的負數嗎?

有人可以解釋這個if循環來刪除線性列表中的負數嗎?

翻閱古今 2021-05-06 18:21:19
此方法允許刪除線性列表中的所有底片。我將if循環標記為100%我不理解。因此,此方法遍歷整個列表。其余代碼完全有意義。但是我唯一的問題是為什么會head = n.next在何時prev == null?這是因為現在有兩個“空格”并且不允許這樣做嗎?(兩個空格,因為prev = null和n必須也為null,因為它在if循環中跳轉為負數)ListNode prev = null;    ListNode n = head;    while (n != null) {        if (n.val < 0) {                   if (prev == null) {       //this if- loop i don′t understand                head = n.next;            }            else {                prev.next = n.next;            }        }        else {            prev=n;            n = n.next;        }    }
查看完整描述

1 回答

?
慕沐林林

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

首先if不是循環,而是用于條件分支的語句。

因此,從開始if (n.val < 0),您檢查當前元素是否小于零,如果是,則檢查當前元素之前的元素是否為null。如果是,則意味著您當前的元素是列表的開頭,并且它的值小于零,因此您希望將其刪除。因此,您只需要使列表的開頭成為當前標題之后的元素即可。

因此,目的if (prev == null){是檢查當前元素(小于零)是否在列表的開頭,以便您知道如何刪除它。

繼續,如果當前元素不是列表的開頭,您將只說前一個元素(相對于當前元素)之后的元素是當前元素之后的元素,因此列表中的零元素不再為零。 。


查看完整回答
反對 回復 2021-05-19
  • 1 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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