私は再帰スキルを向上させようとしています (または、おそらく初めて取得します:))。そのために、次のように、単一リンクリストを逆にする Java コードを書きました。
node head, prev; // head is pointing to the start of the linked list
void reverselist(node current) {
if (current.next != null) {
reverselist(current.next);
}
if (current.next == null) {
this.head = current;
prev = current;
}
else {
prev.next = current;
current.next = null;
prev = current;
}
}
このコードは正常に動作しますが、学習のために、再帰関数内の操作にグローバル変数 (ノード prev) を使用することは避けたいと考えています。では、この関数を書き直して完全に回避することはできますか? 他の最適化は大歓迎です:)