LC297
クラスコーデック { パブリック: // エンコード木単一の文字列に。 文字列シリアライズ(ツリーノード* ルート) { ostringstream うち。 直列化(ルート、アウト)。 // STR()返回ostringsteam里的临时值 返す うちの.str(); } // ES ツリーノード*デシリアライズ(文字列データ) { istringstream で(データ)。 リターン(デシリアライズ中)。 } プライベート: 無効シリアル化(ツリーノード*ルート、ostringstream&アウト) { 場合(!ルート) { うち << " #" 。 リターン; } アウト << root->ヴァル<< " " 。 シリアル化(ルート - >左、出); シリアル化(ルート - >右、出); } ツリーノード *デシリアライズ(istringstream&中) { 文字列のVal; 中 >> ヴァル。 " #")の戻りnullptr; ツリーノード *ルート= 新しいツリーノード(STOI(ヴァル)); ルート - >左=デシリアライズ(中) ルート - >右=デシリアライズ(中) リターンルート。 } }。