1

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

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

4

1 回答 1

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));
}
于 2012-10-13T19:29:47.210 回答