java - 交换线性链表中的值并递归返回副本

标签 java linked-list

我正在尝试创建一个函数,该函数采用链接列表并搜索列表中的每个节点。如果节点有匹配的int i1,则与i2交换。最后返回一个链表,它是其替换的副本。

迭代地,我想我可以创建列表的副本,迭代每个节点,然后检查和替换。

for(LN copy = list; copy != null; copy = copy.next;)
  if (copy.value == i1)
   copy.value == i2;
return copy;

原型(prototype)是

public static LN copySwap (LN list, int i1, int i2);

我不确定如何开始递归地实现这个。

最佳答案

假设 LN 的构造函数采用一个值和列表中的下一个节点,这应该可以工作:

public static LN copySwap (LN list, int i1, int i2) {
    if (list == null) {
        return null;
    }
    return new LN(list.value == i1 ? i2 : list.value, copySwap(list.next, i1, i2));
}

关于java - 交换线性链表中的值并递归返回副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12876196/

相关文章:

c++ - 链表 - 新节点指针与新节点变量

java - 为什么我会得到这个结果?反转字符串的简单循环

java - 使用迭代器将元素交换到链表的顶部

c++ - 如何在链表中搜索结构对象

java - 从 ArrayList 或 LinkedList 中删除元素哪个更有效?

java - Eclipse 在 Debug模式下挂起我的进程

java - 将文本文件写入 Android 存储以供稍后查看

java - 使用正则表达式删除单词开头或结尾的撇号

Java 反射 : Checking the type of the method parameter at runtime

Java初始化变量错误