【发布时间】:2012-03-14 05:01:31
【问题描述】:
我需要创建一个使用递归删除 LinkedList 的最后一个元素的方法。 这是我到目前为止所拥有的,但它似乎并没有删除节点......当我调用 list.size() 它仍然是相同的大小和相同的值。我在这里做错了什么? 顺便说一句,这是给 Java 的
public void removeLastElement(Node curr){
if (curr == null)
return;
else{
if(curr.next == null)
curr = null;
else
removeLastElement(curr.next);
}
}
【问题讨论】:
-
你给方法一个节点参数,所以这意味着你肯定知道它是最后一个元素,那么你为什么要使用一个方法,更有趣的是“递归”来删除最后一个元素,尽管你已经知道列表中的最后一个元素是什么?
-
我认为你必须先遍历节点...类似于
curr=curr.next之前removeLastElement(curr.next);..!!..然后将最后一条语句更改为:removeLastElement(curr); -
我的家庭作业要求我们使用递归。我想我们不应该使用节点参数吗?从您的回复来看。
标签: java recursion linked-list