1

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

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);
    }
}
4

2 回答 2

6

你必须做这样的事情。请参阅此链接以获取说明。

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

    } else {
        ref.next = addLast(element, ref.next);
    }
    return ref;
}
于 2013-11-02T05:21:33.653 回答
1
private void addLast(Node node){

   while(root.next != null){
            root = root.next;

            if (root.next == null){
                root.next = node;
                break;
            }
    }
}

不是递归的,因为你不需要它......

于 2013-11-02T03:15:39.173 回答