Buckle force different from the first 95 questions binary search tree II

Buckle force different from the first 95 questions binary search tree II

Given an integer n, generated by the all 1 ... n is the binary search tree consisting of nodes.

struct TreeNode {
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};

 vector<TreeNode*> generateTree(int start, int end)
 {
     vector<TreeNode*> vect;
     if (start > end)
     {
         vect.push_back(NULL);
         return vect;
     }
     for (int i = start; i <= end; i++)
     {
         vector<TreeNode*> left = generateTree(start, i - 1);
         vector<TreeNode*> right = generateTree(i + 1, end);
         for (vector<TreeNode*>::iterator itorl = left.begin(); itorl != left.end(); itorl++)
         {
             for (vector<TreeNode*>::iterator itorr = right.begin(); itorr != right.end(); itorr++)
             {
                 TreeNode* pNode = new TreeNode(i);
                 pNode->left = *itorl;
                 pNode->right = *itorr;
                 vect.push_back(pNode);
             }
         }
     }
     return vect;
 }

 vector<TreeNode*> generateTrees(int n) 
 {
     vector<TreeNode*> vect;
     if (n <= 0)
     {
         return vect;
     }
     return generateTree(1, n);
 }

Guess you like

Origin www.cnblogs.com/woodjay/p/12370094.html