我正在尝试创建一个带有链表的函数,并搜索列表中的每个节点。如果节点具有匹配的int,i1,则与i2交换。最后返回一个链表,该链表是其替换的副本。
迭代地,我想我可以创建列表的副本,遍历每个节点,然后检查并替换。
for(LN copy = list; copy != null; copy = copy.next;)
if (copy.value == i1)
copy.value == i2;
return copy;
原型是
public static LN copySwap (LN list, int i1, int i2);
我不知道如何以递归方式开始实现这一点。
答案 0 :(得分:1)
假设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));
}