如何递归复制列表?

用户名

这是我的代码:

public class ListItem {

    final int number; //These need to stay this way because I need to access them later
    ListItem next;

    ListItem(int number, ListItem next) {
        this.number = number;
        this.next   = next;
    }

    // I need to return a copy of this list using recursion, not iteration.
    public ListItem duplicate() {
        if (duplicate() == ListItem) { //base case??
            return next;
        }
        else return duplicate(); //just a placeholder
   }

我不确定基本情况应该是什么以及递归调用将是什么,因为duplicate()没有参数。有人可以指导我了解Java如何看待这些方法吗?我想学习这是如何工作的。

尼伯(JB Nizet)
public ListItem duplicate() {
    if (next == null) {
        // base case: last item in the chain
        return new ListItem(this.number, null);
    }
    else {
        // start by duplicating the rest of the chain:
        ListItem newNext = next.duplicate();
        return new ListItem(this.number, newNext);
    }
}

或者,更简而言之:

public ListItem duplicate() {
    ListItem newNext = next == null ? null : next.duplicate();
    return new ListItem(this.number, newNext);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

递归复制列表python

来自分类Dev

如何递归复制“正义文件”

来自分类Dev

如何递归复制/下载整个webdav目录?

来自分类Dev

如何防止递归复制文件和目录?

来自分类Dev

如何递归复制/下载整个webdav目录?

来自分类Dev

如何使用递归生成列表?

来自分类Dev

如何使用Windows批处理文件从文本文件中的文件列表中递归复制文件?

来自分类Dev

Python:如何复制词典列表

来自分类Dev

如何复制数组或数组列表

来自分类Dev

如何在OCaml中生成递归列表

来自分类Dev

如何递归加载Azure Blob文件列表?

来自分类Dev

如何制作构建列表的递归函数

来自分类Dev

如何通过递归浏览几个列表

来自分类Dev

如何使用递归来反向链接列表?

来自分类Dev

如何递归追加到空列表?

来自分类Dev

如何使用递归垂直打印列表?

来自分类Dev

如何在OCaml中生成递归列表

来自分类Dev

如何从Python的递归函数返回列表?

来自分类Dev

如何创建尾递归反向列表过程?

来自分类Dev

如何递归访问子列表的命名元素?

来自分类Dev

如何使用递归功能创建列表

来自分类Dev

如何使用cp以幂等方式递归复制文件夹?

来自分类Dev

如何递归复制.Net中的文件夹文件?

来自分类Dev

如何递归复制所有不超过1天的文件?

来自分类Dev

如何递归复制隐藏目录并保留其权限?

来自分类Dev

如何使用Windows命令行递归复制文件

来自分类Dev

如何通过文件扩展名递归复制文件?

来自分类Dev

如何从递归文件复制中排除特定扩展名?

来自分类Dev

如何递归地复制一个FormGroup?