unique binary search tree
1 class Solution { 2 public: 3 vector<TreeNode *> generate(int left,int right ) 4 { 5 vector<TreeNode *> vec; 6 7 if( left > right ) 8 vec.push_back( NULL ); 9 10 for(int i=left;i<=right;i++) 11 { 12 vector<TreeNode *> vec1 = generate(left,i-1); 13 vector<TreeNode *> vec2 = generate(i+1,right); 14 for(int j=0;j<vec1.size();j++) 15 { 16 for(int k=0;k<vec2.size();k++) 17 { 18 TreeNode* node = new TreeNode(i); 19 node->left = vec1[j]; 20 node->right = vec2[k]; 21 vec.push_back( node ); 22 } 23 } 24 } 25 return vec; 26 } 27 vector<TreeNode *> generateTrees(int n) { 28 // Start typing your C/C++ solution below 29 // DO NOT write int main() function 30 vector<TreeNode *> vec; 31 32 vec = generate(1,n); 33 34 return vec; 35 36 } 37 };
posted on 2013-09-03 13:17 jumping_grass 阅读(179) 评论(0) 收藏 举报
浙公网安备 33010602011771号