Java 来自泛型元素数组的递归构造函数

Java 来自泛型元素数组的递归构造函数,java,recursion,constructor,Java,Recursion,Constructor,我有这样一个任务,我必须用java实现一个链表类,但是,它需要完全用递归函数实现,甚至是构造函数 老师提供的项目中给出的构造函数接收到一个由n个带3点符号的泛型元素(T…元素)组成的数组,在搔了搔头之后(我从来没有做过递归构造函数),我想出了一些显然不起作用的东西: public SingleLinkedListImpl(T ... elements) { if(elements.length<=1){ header = new Node<T>(elem

我有这样一个任务,我必须用java实现一个链表类,但是,它需要完全用递归函数实现,甚至是构造函数

老师提供的项目中给出的构造函数接收到一个由n个带3点符号的泛型元素(T…元素)组成的数组,在搔了搔头之后(我从来没有做过递归构造函数),我想出了一些显然不起作用的东西:

public SingleLinkedListImpl(T ... elements) {
    if(elements.length<=1){
        header = new Node<T>(elements[0]);
    } else {
        addLast(elements[0]);
        elements=Arrays.copyOfRange(elements, 1, elements.length-1);
        this(elements);
    }
}
public SingleLinkedListImpl(T…元素){

if(elements.length“递归构造函数”并不等同于调用
this()
,而是调用
新的SingleLinkedListImpl()

而且,
这是头,而不是有头

假设您的类有
next
value
字段,使用伪代码:

  • 如果数组为空,则抛出一个
    IllegalArgumentException
  • value
    设置为数组的第一个元素
  • 如果数组中有多个元素,请将
    next
    的值设置为
    new SingleLinkedListImpl()
称之为:

SingleLinkedListImpl<Integer> head = new SingleLinkedListImpl<>(3, 1, 4, 1, 5); // for example
SingleLinkedListImpl头=新的SingleLinkedListImpl(3,1,4,1,5);//例如

您可以尝试重载构造函数。我曾尝试在递归调用中实现并使用SimpleLinedListImpl(T元素),但错误仍然存在。