10
バイナリツリーのバランスが取れているかどうかを確認する最短プログラムを作成する
バランスの取れたバイナリツリーの各ノードでは、左の子サブツリーと右の子サブツリーの高さの最大差は最大1です。 二分木の高さは、ルートノードからルートから最も遠いノードの子までの距離です。 以下に例を示します。 2 <-- root: Height 1 / \ 7 5 <-- Height 2 / \ \ 2 6 9 <-- Height 3 / \ / 5 11 4 <-- Height 4 バイナリツリーの高さ:4 以下は、二分木とそれらがバランスされているかどうかに関するレポートです。 上記のツリーは不均衡です。 上記のツリーはバランスが取れています。 バイナリツリーのルートを入力として受け入れ、ツリーのバランスが取れていない場合はfalsey値を返し、ツリーのバランスが取れている場合はtrue値を返す、可能な限り最短のプログラムを作成します。 入力 バイナリツリーのルート。これは、ルートオブジェクトへの参照の形式でも、バイナリツリーの有効な表現であるリストの形式でもかまいません。 出力 真理値を返します:ツリーのバランスが取れている場合 falsey値を返します。ツリーのバランスが取れていない場合。 二分木の定義 ツリーは、値と2つの他のツリーまたはそれらへのポインターを含むオブジェクトです。 バイナリツリーの構造は次のようになります。 typedef struct T { …