我试图以递归方式将一个元素附加到链接列表的末尾。但是,似乎没有添加任何内容。我使用私有帮助器方法,所以我可以使用引用作为参数。我没有遇到任何异常,但是,我的测试用例表明列表中没有添加任何内容!我不知道我做错了什么,也不知道从哪里开始。非常感谢您的帮助。
public void addLast(E element) {
addLast(element,first);
}
private void addLast(E element, Node ref) {
if (ref == null) {
ref = new Node(element);
n++;
} else if (ref.next == null) {
ref.next = new Node(element);
n++;
} else {
addLast(element, ref.next);
}
}
答案 0 :(得分:6)
你必须做这样的事情。 有关说明,请参阅this link 。
private Node addLast(E element, Node ref) {
if (ref == null) {
ref = new Node(element);
} else {
ref.next = addLast(element, ref.next);
}
return ref;
}
答案 1 :(得分:1)
private void addLast(Node node){
while(root.next != null){
root = root.next;
if (root.next == null){
root.next = node;
break;
}
}
}
因为你不需要它而不是递归的......