[] Leetcode対称バイナリツリー

 

再帰

ときに実行:12ミリ秒は、Cに提出するすべてのユーザーの43.44パーセントを打つ++
メモリ消費量:14.6メガバイトは、Cに提出するすべてのユーザーの95.56パーセントを破っ++
/ * * 
 *バイナリツリーノードの定義。
 *構造体のTreeNode { 
 * INTヴァル。
 *のTreeNode *左; 
 *のTreeNode *右; 
 *ツリーノード(int型X):(NULL)左のval(X)、右(NULL){} 
 *}。
 * / 
クラスソリューション{
 パブリックBOOL isSymmetric(のTreeNode *のルート){
         場合(ルート== NULL)
             を返す 
        
        もし(isMirror(root->、root->左、右))
             を返す それ以外の
            返し はfalse ; 
    } 
    
    ブールisMirror(ツリーノード* LCを、ツリーノード*のRC){
         場合(LC == NULL && RC == NULL)
             を返す 
        
        もし(LC == NULL || RC == NULL)を
             返します {
             場合(LC->ヴァル== RC-> ヴァル)
                 リターン(isMirror(LC->左、RC->右)&& isMirror(LC->右、RC-> 左))。
            それ以外の
                返し はfalse ; 
        } 
    } 
}。

時間計算:

O(n)は、ツリーを横断する各ノードのアルゴリズムのプロセスので、ノードの数がnです。

宇宙の複雑さ:

O(n)は、木の層の数に関連する再帰関数で使用されるスタック領域。ツリーは線状構造である場合、空間複雑さはO(N)となるように、層の数は、nが

 

おすすめ

転載: www.cnblogs.com/gdut-gordon/p/11445061.html