皆さん、ありがとうございます。 コンソールで印刷するこの再帰的な方法があります。文字列を返すように、コンソールに出力する再帰的メソッドを変換する方法は?
private void printPath(Vertex destiny) {
if (destiny.getPrevious() != null) {
printPath(destiny.getPrevious());
System.out.print(" to ");
}
System.out.print(destiny.getName());
}
しかし、今では印刷の代わりに連結文字列を返す必要があります。私はこの貧しい試みを持っている ...
private String printPath(Vertex destiny, String concat) {
if (destiny.getPrevious() == null) {
return " , " + concat;
} else {
return printPath(destiny, (destiny.getName() + " " + concat));
}
}
しかし、私はそれは私にStackOverflowExceptionがを与え、それを動作させることはできません。
編集:コンソールへ 出力は、たとえば次のとおりです。 ... 「スペインドイツにギリシャへのポーランドへの」そして、それは私が文字列で返したいと同じことです。この方法に
private String printPath(Vertex destiny, String concat) {
if (destiny.getPrevious() == null) {
return " , " + concat;
} else {
return printPath(destiny.getPrevious(), (destiny.getName() + " " + concat));
}
}
峠destiny.getPrevious()
代わりのdestiny
:あなたのメソッドが正しく終了取得されていません
あなたが同様にあなたのコンソールの出力を提供する場合に理解しやすいだろう(何をあなたは何を期待しているのか)。 – lkdhruw
最初のコード例では、 'getPrevious()'に対して 'printPath'を呼び出します。あなたは2番目のケースでそれをやっていません。 – ajb
2番目のコードで、 'printPath'が最初に呼び出されたときの2番目の引数' concat'の値は何ですか? – lkdhruw