我正在尝试创建一个函数,该函数采用链接列表并搜索列表中的每个节点。如果节点有匹配的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/