Unique Binary Search Trees II
Posted illfuckingkyzb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unique Binary Search Trees II相关的知识,希望对你有一定的参考价值。
class Solution { public: vector<TreeNode*> generateTrees(int n) { if (n == 0) { vector<TreeNode*> ret; return ret; } return generateTrees(n, 1);//由于数列从1开始,所以传递1为参数。 } vector<TreeNode*> generateTrees(int n, int val_start) { vector<TreeNode*> ret; if (n == 0) { ret.push_back(NULL); return ret; } if (n == 1) { ret.push_back(new TreeNode(val_start)); return ret; } for (int i = 0; i < n; i++) { vector<TreeNode*> left = generateTrees(i, val_start);//从左子树为0开始往下递归。 vector<TreeNode*> right = generateTrees(n-1-i, val_start+i+1);//右子树的数量就为(n-1-i) 其中1为根。 for (int l = 0; l < left.size(); l++) { for (int r = 0; r < right.size(); r++) { TreeNode* root = new TreeNode(val_start+i);//在这里实现根节点的替换 root->left = left[l]; root->right = right[r]; ret.push_back(root); } } } return ret; } };
这道题主要是递归过程比较麻烦。
以上是关于Unique Binary Search Trees II的主要内容,如果未能解决你的问题,请参考以下文章