我想对链表的所有值进行递归求和,但不起作用。上面写着:
无法调用“element.sum()”,因为“element.getnext()”的返回值为null
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();
}
}
}
4条答案
按热度按时间x0fgdtte1#
sum
甚至不是一种Element
,所以实现不应该编译。我将根元素传递给内部
sum
方法,并保留no argsum
公共方法:s3fp2yjn2#
既然您似乎在尝试学习递归性,而且您似乎真的在尝试,我就不给您一个完整的解决方案了。
首先,我认为您没有提供完整的代码,因为它不会编译。你在打电话吗
elements.getNext().sum()
这意味着在类元素上有一个sum()方法。实际上,这是一种可能的正确方法,在元素类中使用sum方法,因为您希望在每个元素上都发生递归。
因此,当您以这种方式开始时,您应该继续尝试这种方式:在元素类上添加sum方法。这就是你可以做递归的地方。递归性意味着在另一个示例上或使用另一个参数再次调用同一个方法。。。
另一个答案是可行的,但是你会仅仅通过复制它来学习递归性吗?我建议尝试做类似的事情,但是在element类中,所以您可以自己做
hmae6n7t3#
这里有一个解决方案:
snvhrwxg4#