连接2个链接列表 - Java

时间:2014-10-19 02:17:55

标签: 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中的第一个值,带有this.last.next = that.first。如果" d1"我应该制作另一个处理这种情况的声明吗?也是空的?

2 个答案:

答案 0 :(得分:1)

虽然我没有你的整个节点类,但我看到2个可能的地方让你有一个NullPointerException。

(1)

if (!that.isEmpty())

您应该验证(that != null)。如果that为空,您的代码将抛出NullPointerException。

(2)

this.last.next = that.first;

如果this.last为空,则代码将抛出NullPointerException。确保它不是,或事先检查。

答案 1 :(得分:0)

确保检查下一个节点是否为空

while (list.next != null)

是标准方法,如果您使用自定义结束令牌可能会略有不同