Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 递归地插入到排序列表中_Java_Recursion_Nodes_Insertion_Sortedlist - Fatal编程技术网

Java 递归地插入到排序列表中

Java 递归地插入到排序列表中,java,recursion,nodes,insertion,sortedlist,Java,Recursion,Nodes,Insertion,Sortedlist,我需要编写一个方法,将项目递归地插入到单链排序列表中。列表的节点类如下所示: protected class Node<T> { protected Node(T data) { this.data = data; } protected T data; protected Node<T> next; } protected Node<E> head; 受保护类节点{ 受保护节点(T数据){ 这个数据=数

我需要编写一个方法,将项目递归地插入到单链排序列表中。列表的节点类如下所示:

protected class Node<T> {

    protected Node(T data) {
        this.data = data;
    }

    protected T data;
    protected Node<T> next;
}

protected Node<E> head;
受保护类节点{
受保护节点(T数据){
这个数据=数据;
}
受保护的T数据;
受保护节点下一步;
}
受保护节点头;
}

方法签名为:void insert(E data)。
我可以迭代地做这件事,但我似乎不知道如何递归地做。有人能提供一些见解吗?

假设您应该在列表末尾插入,只需重复
这个。下一个
直到
这个。下一个
空的

public void insert(E data) {
    if (this.next == null) {
        // we're at the end, so actually do the insert
        // if you can do it iteratively, you should already know what to do here
    } else {
        this.next.insert(data);
    }
}

创建一个函数,该函数接受起始节点和要插入的数据

如果该节点是放置数据的正确位置,只需插入它即可

如果不是,则递归调用函数以尝试下一个节点。

@MatthewDean不是字面上的循环,它必须是递归的。