バイナリツリーの再帰的なinorder、preorder、postoreder traversalのスタックを作成しようとしました。例えば、テストケースのために私の答えが「本当」であるべき、のような他の例では、say.And、例えば、メソッドがスタック内でどのように形成され、メソッドの戻り値がメソッド内で2回繰り返される場合
boolean method(root)
{
// more code
method(root.left());
method(root.right());
}
、どこかで、メソッドの呼び出し(root.leftは())がfalseを返しますメソッドの呼び出し(root.right())はtrueを返します。これは私たちの答えになります。しかし、メソッドの呼び出し(root.left())が最初にどこかで完了しているので、実行の間にfalseを返している可能性があります。メソッド(root.right())から結果を真にするにはどうすればいいですか?私はスタックがどのように形成され、メソッドからの値がこのように再帰呼び出しが起こったときに返されると考えています。私が間違っていればそれを解明してください。
この質問に-1を付けた人は、少なくとも問題に答えるべきでないなら、少なくとも私は別の場所に投稿するように指示することができました。(積極的に取ってください) – user404
何かを返す必要があります。 'returnメソッド(root.left())||メソッド(root.right());'。より多く処理する必要がある場合は、ローカル変数を使用しますが、結果を何もせずに、それを動作させることはできません。あなたのベースケースもリターンする必要があります。 – Sylwester
@Sylwester私は自分の責任としてそれを受け入れます。私は、ベースケースのステートメントが存在することを意味する "より多くのコード"として(ベースケース)をコメントしました。 – user404