在尝试连接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"我应该制作另一个处理这种情况的声明吗?也是空的?
答案 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)
是标准方法,如果您使用自定义结束令牌可能会略有不同