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

1 java recursion nodes singly-linked-list

我试图以递归方式将一个元素附加到链接列表的末尾.但是,似乎没有添加任何内容.我使用私有帮助器方法,所以我可以使用引用作为参数.我没有遇到任何异常,但是,我的测试用例表明列表中没有添加任何内容!我不知道我做错了什么,也不知道从哪里开始.非常感谢您的帮助.

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

Sou*_*abh 6

你必须做这样的事情.请参阅此链接以获取解释.

private Node addLast(E element, Node ref) {
    if (ref == null) {
        ref = new Node(element);

    } else {
        ref.next = addLast(element, ref.next);
    }
    return ref;
}
Run Code Online (Sandbox Code Playgroud)