letecode [104] - バイナリツリーの最大の深さ

バイナリツリーを考えると、その最大の深さを見つけます。
最大深さは、最も遠いリーフノードまでのルートノードから最長パスに沿ったノードの数です。
注:葉は子を持たないノードです。
例:
与えられたバイナリツリー[3,9,20、NULL、NULL、15,7]、
    3 
   / \ 
  9 20 
    / \ 
   15 7

= 3その深さを返します。

効果の件名:

  バイナリツリー、バイナリツリー・コンピューティングの深さを考えます

理解します:

  ルートノードは、0の深空である;左の部分木のルートノードは、1の深空です。

  再帰の深さ+1の各層。

コードC ++:

 

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

 

結果:

  で実行する場合:  12 MSの  メモリ消費量:  19.3メガバイトを

 

おすすめ

転載: www.cnblogs.com/lpomeloz/p/10988877.html