【发布时间】:2015-01-04 15:28:25
【问题描述】:
public Link getEnd(LinkList a, Link current){
if(current.next == null){
Link temp = current; //here I save the Link in a variable before nullifying it
current = null;
return temp;
}
else{
getEnd(a , current.next);
}
return null;
}
我正在为 LinkedList 使用一个专门为我正在学习的 CS 课程编写的课程,所以如果语法与您习惯的不同,请记住这一点。
这里发生的是我得到一个空指针异常并且列表中的最后一个链接是相同的,它没有任何反应。
【问题讨论】:
-
不要在标题中添加标签。你已经在你的问题下使用了它们。
-
如果你得到一个 NPE 那么这意味着你正在访问一个为空的变量上的方法或字段。在您的代码 sn-p 中,这只发生在一个引用上:“current.next”。我认为您需要将第一个 if 语句更改为“if(current == null)”
-
两个cmets:看起来你想返回递归调用返回的值,如果你从不使用它为什么需要
a参数(递归调用除外......哪个也不用)? -
@bcsb1001 我稍后会在其他方法中使用 a。不过,这不是导致问题的原因。
-
您没有保存返回的值...
标签: java list recursion linked-list