以递归方式插入排序列表

时间:2012-11-29 03:55:08

标签: 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;

}

方法签名是:void insert(E data)。 我可以迭代地执行此操作,但我似乎无法绕过如何以递归方式执行此操作。任何人都可以提供任何见解吗?

2 个答案:

答案 0 :(得分:1)

假设您应该在列表末尾插入,只需this.next重复this.next null

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

答案 1 :(得分:0)

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

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

如果没有,请递归调用该函数以尝试下一个节点。