繁体   English   中英

将节点递归添加到链表的末尾

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM