インタビューの質問04.05。正当な二分探索木

これは、分割統治最小+最大値を見つけることです。左の部分木の最大値が、最小の右部分木よりも小さいよりもバイナリ検索ツリーのルートノード。

クラスのソリューション{

民間:

公衆:

    BOOL isValidBST(ツリーノード*ルート){

        (ルート== NULL)がtrueを返す場合は、

        ツリーノード* max_left = root->左;

        ツリーノード* min_right = root->右;

        しばらく(max_left!= NULL && max_left->右!= NULL){

            max_left = max_left->右;

        }

        しばらく(min_right!= NULL && min_right->左!= NULL){

            min_right = min_right->左;

        }

        BOOL結果=真;

        IF(max_left)結果= && root->ヴァル> max_left->ヴァルをもたらします。

        (min_right)&& root->ヴァル<min_right->ヴァルもたらす=もたらす場合

        isValidBST(root->左)&& isValidBST(root->右)&&結果を返します。

    }

}。

公開された68元の記事 ウォンの賞賛0 ビュー10000 +

おすすめ

転載: blog.csdn.net/declanzane/article/details/105027472