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 に答える