簡體   English   中英

串聯2個鏈表-Java

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM