[英]Recursively adding node to end of linkedlist
我试图将元素递归地添加到链表的末尾。但是,似乎什么都没有添加。 我使用私有帮助器方法,因此可以将引用用作参数。 我没有遇到任何例外,但是,我的测试用例表明,列表中什么都没有添加! 我不知道我在做什么错,也不知道从哪里开始。 非常感谢您的帮助。
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);
}
}
你必须做这样的事情。 请参阅此链接以获取解释。
private Node addLast(E element, Node ref) {
if (ref == null) {
ref = new Node(element);
} else {
ref.next = addLast(element, ref.next);
}
return ref;
}
private void addLast(Node node){
while(root.next != null){
root = root.next;
if (root.next == null){
root.next = node;
break;
}
}
}
不递归,因为您不需要它...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.