leetcode毎日ブラシタイトル計画 - シンプル記事day17

新しい一日を計算するために、事前に作られた喜喜喜、バーベキュー巨大な幸せああを食べます

NUM 110平衡二分木

各層はちょうど判定ルートの始まりを覚えて、仕事のバランスをとる必要があることに注意してください

/ * * 
 *バイナリツリーノードの定義。
 *構造体のTreeNode { 
 * INTヴァル。
 *のTreeNode *左; 
 *のTreeNode *右; 
 *ツリーノード(int型X):(NULL)左のval(X)、右(NULL){} 
 *}。
 * / 
クラスソリューション{
 パブリックBOOL isBalanced(のTreeNode *のルート){
         場合(ルート== NULL)を返す もし(ABS(も、getLevel(root->左)-getLevel(root->右))> 1 を返す リターン(isBalanced(root->左)&& isBalanced(root->右)); 
    } 
    INTも、getLevel(ツリーノード* ルート)
    { 
        場合(ルート== NULL)戻り 0 返す最大(も、getLevel(root->左)、も、getLevel(root->右))+ 1 ; 
    } 
}。
コードの表示

 二分木111のNUM最小深さ

質問は難しいことではありませんが、それでも最初の時間を右ではない、これは最短、深さを求める全くない権利として、この時間は0で、右にビットを残しがない場合はご注意です。例えば、[1,2]ツリーに関連する問題を解決するために二階建て、音符です。

まず、ヌルノードとリーフノードを考慮して、第二、ルートが決定されていないことに注意してください

/ * * 
 *バイナリツリーノードの定義。
 *構造体のTreeNode { 
 * INTヴァル。
 *のTreeNode *左; 
 *のTreeNode *右; 
 *ツリーノード(int型X):(NULL)左のval(X)、右(NULL){} 
 *}。
 * / 
クラスソリューション{
 パブリックint型 minDepth(TreeNodeの* ルート){
         場合(ルート== NULL)の戻り 0 ;
        もし(root->左== NULL && root->右== NULL)リターン 1 もし(root->左== NULL)を返す minDepth(root->右)+ 1 もし(root->右== NULL)リターン minDepth(root->左)+ 1 戻り分(minDepth(root->左)、minDepth(root->右))+ 1 
    } 
}。
コードの表示

 

おすすめ

転載: www.cnblogs.com/tingxilin/p/11141287.html