再帰的にJavaでリンクリストを逆にする
私はしばらくの間、クラスのJavaプロジェクトに取り組んでいます。これは、リンクリストの実装です(ここではと呼ばれAddressList、と呼ばれる単純なノードを含みますListNode)。問題は、すべてを再帰的アルゴリズムで実行する必要があることです。私は1つの方法ではなくすべてをうまく行うことができました:public AddressList reverse() ListNode: public class ListNode{ public String data; public ListNode next; } 現在、私のreverse関数は、再帰を許可する引数を取るヘルパー関数を呼び出すだけです。 public AddressList reverse(){ return new AddressList(this.reverse(this.head)); } 私のヘルパー関数にはの署名がありprivate ListNode reverse(ListNode current)ます。 現時点では、スタックを使用して繰り返し作業していますが、これは仕様に必要なものではありません。再帰的に逆にして手動でJavaコードに変換するアルゴリズムをCで見つけましたが、うまくいきましたが、理解できませんでした。 編集:気にしないで、それまでの間、それを理解しました。 private AddressList reverse(ListNode current, AddressList reversedList){ if(current == null) return reversedList; reversedList.addToFront(current.getData()); return this.reverse(current.getNext(), reversedList); } 私がここにいる間、誰かがこのルートに問題を感じていますか?