c_cpp 独特的二叉搜索树。给定n,生成存储值1 ... n的所有结构上唯一的BST(二叉搜索树)。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 独特的二叉搜索树。给定n,生成存储值1 ... n的所有结构上唯一的BST(二叉搜索树)。相关的知识,希望对你有一定的参考价值。
vector<treenode*> generate_unique_trees(int n) {
vector<treenode*> res;
dfs(res, 1, n);
return res;
}
void dfs(vector<treenode*> &res, int low, int high) {
if(low > high) {
res.push_back(NULL);
return;
}
for(int i=low; i<high; i++) {
vector<treenode*> left_trees, right_trees;
dfs(left_trees, low, i-1);
dfs(right_trees, i+1, high);
// POS1
for(int j=0; j<left_trees.size(); j++) {
for(int k=0; k<right_trees.size(); k++) {
treenode *root = new treenode(i); // gist, should be here, not at POS1
root->left = left_trees[j];
root->right = right_trees[k];
res.push_back(root);
}
}
}
}
以上是关于c_cpp 独特的二叉搜索树。给定n,生成存储值1 ... n的所有结构上唯一的BST(二叉搜索树)。的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode练习(Python):动态规划类:第95题:不同的二叉搜索树 II:给定一个整数 n,生成所有由 1 ... n 为节点所组成的二叉搜索树。
分治---不同的二叉搜索树
leetcode95 不同的二叉搜索树II
95. 不同的二叉搜索树 II
95. 不同的二叉搜索树 II
树95. 不同的二叉搜索树 II