[英]Concatenating 2 Linked Lists - Java
嘗試在JAVA中連接兩個鏈接列表時,NullPointExceptions出現了一些麻煩。
用於測試它的主要代碼是:
d1 = new MyDeque ();
d2 = new MyDeque ();
d2.pushLeft (11);
d1.concat (d2);
雖然concat函數的代碼是:
public void concat (MyDeque that) {
if (!that.isEmpty())
{
this.last.next = that.first;
this.N += that.N;
that.first = null;
that.last = null;
that.N = 0;
}
}
我不了解的部分是它標記了NullPointerException。 “ d2”或不為空,而“ d1”是,讓我理解到會有一個空值“ d1”指向“ d2”中的第一個值,也就是11。 last.next = that.first。 如果“ d1”也為空,我是否應該做出另一條處理不同的語句?
盡管我沒有整個節點類,但我看到兩個可能的地方包含NullPointerException。
(1)
if (!that.isEmpty())
您應該驗證(that != null)
。 如果為null that
則您的代碼將引發NullPointerException。
(2)
this.last.next = that.first;
如果this.last
為null,則您的代碼將引發NullPointerException。 確保不是,否則請事先檢查。
確保您正在檢查下一個節點不為空
while (list.next != null)
這是標准方法,如果您使用自定義結束令牌,則可能會略有不同
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.