【发布时间】:2021-03-16 17:58:40
【问题描述】:
我想递归地总结一个链表的所有值,但它不起作用。它说:
无法调用“Element.sum()”,因为“Element.getNext()”的返回值为空
public class Element{
private int value;
private Element next;
}
public class MyList{
private Element elements;
public int sum(){
if (elements == null) return 0;
return elements.getValue() + elements.getNext().sum();
}
}
}
【问题讨论】:
-
“Element.getNext() is null”有什么不清楚的地方?
-
当列表包含 1 个元素时它不起作用。
-
假设您在最后一个元素上,然后
element.getNext()为 null 并且您尝试在该 null 上调用sum()因此您的错误,甚至在您调用任何之前添加一个 null 检查到getNext()其他功能。 -
“当列表包含 1 个元素时它不起作用” - 是的,因为代码试图获取下一个不存在的元素(它为空)。问题是什么?
-
但是如果下一个为空,则有一个 if 子句应该返回
标签: java recursion linked-list sum