Leetcode幸せブラシタイトル三〇から九--95。ユニークなバイナリ検索ツリーII

 

整数を考えると  nは、全ての構造的にユニークなBSTの(二分探索木)を生成するその店は1つの...値  Nを

例:

入力:3 
出力
  [ [1、NULL、3,2]、
  [3,2、NULL、1]、
  [3,1、NULL、NULL、2]、
  [2,1,3]、
  [1、NULL 、2、NULL、3] 
] 
説明:
上記の出力は5つのユニークなBSTに対応を以下に示すの:

   1 3 3 2 1 
    \ / / / \ \ 
     3 2 1 3 2 
    / / \ \ 
   2 1 2 3 

注意点
definationを木の
書式#include <iostreamの> 
の#include <ベクトル> 
std名前空間を使用しました。
#include <iostreamの> 
する#include <ベクトル> 
// segementデフォルト内存操作不当
構造体のTreeNode 
{ 
    int型のval; 
    ツリーノード*左; 
    ツリーノード*右; 
    ツリーノード(int型X):ヴァル(x)は、左(NULL)、右(NULL){} 
}。
クラスソリューション
{ 
パブリック:
    ベクトル<ツリーノード*> generateTrees(int型N)
    { 
        IF(N == 0){リターン}; 
        CONSTオート&ANS = generateTrees(1、N)
        COUT << ans.size()<< ENDL。
        ANSを返します。
    } 

プライベート:
    ベクトル<ツリーノード*> generateTrees(int型L、int型R)
        IF(L> R)リターン{nullptr}。
        ベクトル<TreeNodeの*> ANS; 
        (++ iは; I <= R iは、Lが= INT)のために
            (左ツリーノード*:generateTrees(L、I-1))のために
                :(generateTrees(I + 1、R)ツリーノード*右)のために
                { 
                   ans.push_backを(新しいツリーノード(I)); 
                   ans.back() - >左=左。
                   ans.back() - >右=右。
                } 
        戻りANS。

    } 

}。
//クラスのソリューション{ 
//パブリック:
//ベクトル<ツリーノード*> generateTrees(int型N){ 
//もし(N == 0){リターン}; 
// CONSTオート&ANS = generateTrees(1、N)
// coutの<< ans.size()<<てendl;
// ANSを返します。
//} 
//プライベート:
//ベクトル<ツリーノード*> generateTrees(int型のL、R INT){ 
//場合(L> R)リターン{nullptr}。
//ベクトル<TreeNodeの*> ANS; 
//のために(iはLを= int型; I <= R; ++ i)は
//のために(*ツリーノード左:generateTrees(L、I - 1))
//(ツリーノード*右ため:generateTrees(I + 1、R )){ 
// ans.push_back(新しいツリーノード(I))。
// ans.back() - >左=左。
// ans.back() - >右=右。
//} 
ANSを返す//; 
//} 
//}。
空printTree(TreeNodeの* TMP)
{ 
    場合(TMP == nullptr)
        リターン。
    他{ 
        coutの<< tmp->ヴァル。
        printTree(tmp->左)。
        printTree(tmp->右)。
    } 

} 
int型のmain()
{ 
    ソリューションS1。
    INT、N = 3。
// cinを>> N; 
    ベクター<ツリーノード*> ANS = s1.generateTrees(N)。
    (自動I:ANS)は
    { 
        printTree(I)。
        coutの<<てendl; 

    } 
    0を返します。

}

  

 

おすすめ

転載: www.cnblogs.com/Marigolci/p/11516205.html