LeetCode_617
件名の説明:マージバイナリツリー
私の解決策:2つのノードが値を有し、値が追加され、唯一の値が値と比較し、そこである;そうでなければ空;
再帰:両方が終了条件が空である、再帰条件RESノード、ノードの値を返し - >左= mergeTree(T1->左、T2->左); RES->右= mergeTree(T1->権利を、T2->右)。
コードの一部:
ツリーノード* mergeTrees(ツリーノード* T1、ツリーノード* T2){ 場合(T1 == NULL && T2 == NULL) 戻りNULL。 それ以外の 場合(!T1 == NULL && T2 = NULL) 戻りT2; それ以外の 場合(!T1 = NULL && T2 == NULL) 戻りT1; 他{ T1 - >ヴァル= T1->ヴァル+ T2-> ヴァル。 T1 - > =左mergeTrees(T1->左、T2-> 左)。 T1 - >右= mergeTrees(T1->右、T2-> 右)。 リターン T1; } }
タイトル反射後:大体同じ公式のソリューション、ああ賞賛。(第一の条件は少し精神的に484を不利な場合)
時間計算:Nは2つのツリー内のノードの小さい数であるO(N)。
複雑スペース:O(N)、最悪の場合には、再帰的にN層は、O(N)のスタック領域が必要です
今日、我々は多くの愚かなああの単一のバッチで出ていることがわかった、何時間Iああ<??>