再帰
ときに実行: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が