0
バイナリ検索ツリーの高さを返すメソッドを記述しました。再帰:再帰関数から値-1を返すには
今、再帰的な方法からheight - 1
を返そうとしています。私は余分なif
条件を追加してこれをやっています。
再帰関数からvalue - 1
を返す良い方法はありますか?お使いのベースケースで
static int height(Node root) {
if (root == null) {
return 0;
}
if (root.left == null && root.right==null) {
return 1;
} else
// I want to return height - 1.
// For example if max height is 10, I wanted to return 9.
return (1 + Math.max(height(root.left), height(root.right));
}
}
ヌルノードの場合は1、シングルノードの場合は1、それ以外の場合は1を返したい場合はどうすればよいですか。 例:7要素{3,2,1,5,4,6,7}のBSTの場合、メシドは4の代わりに3を返します。 –
これはいくつかの異なるツリーに対して1を与えるので、やや矛盾します。しかし、本当にそれが欲しいなら、更新を見てください。 – Henry
ありがとうございます。私は、これを達成するために別の関数を使用しなければならないことを確認したかったのですが、これは再帰では不可能です。同じ再帰関数を使ってこれを達成できると思いますか? –