【leetcode】Unique Binary Search Trees II
来源:互联网 发布:手机隐藏软件 编辑:程序博客网 时间:2024/06/11 03:13
题目:给定整数n,返回所有结果为1,,n 的不重复二叉搜索树。
分析:在构建二叉树的题目中,我们了解到,给定二叉的中序遍历和前序遍历我们可以构建一棵唯一的二叉树,给定中序遍历和后序遍历,我们也能构建一棵唯一的二叉树。现在类似于只给定了中序遍历,那么,其构建出的树是不唯一的,即存在多棵,而具体的数量我们在题目一中计算过,是符合卡特兰的。
我们在构建唯一的二叉树的时候,我们可以用单一的指针去接收返回的子树结点,但是现在子树的结点不只一个,所以我们需要一个指针容器去接收。而以某个数字为节点的树的个数恰好是其左右子树的组合数。
//construct the BSFs whose inorder travel is // from start to end.//start and end used to constraint boundaryvector<TreeNode*> AddNodes(int start, int end){if( start > end)return vector<TreeNode*> (1, NULL);//container to store the root of each differ BSTvector<TreeNode*> roots;for (int i = start; i <= end; ++i){//get the left sonsvector<TreeNode*> lefts = AddNodes(start, i - 1);//get the right sonsvector<TreeNode*> rights = AddNodes(i + 1, end);for (int l = 0; l < lefts.size(); ++l)for (int r = 0; r < rights.size(); ++r){TreeNode* root = new TreeNode(i);root->left = lefts[l];root->right = rights[r];roots.push_back(root);}}return roots;}vector<TreeNode *> generateTrees(int n ) {vector<TreeNode*> roots;roots = AddNodes(1, n);return roots;}
0 0
- LeetCode: Unique Binary Search Trees II
- LeetCode : Unique Binary Search Trees II
- [LeetCode] Unique Binary Search Trees II
- leetcode Unique Binary Search Trees II
- [LeetCode]Unique Binary Search Trees II
- [leetcode]Unique Binary Search Trees II
- LeetCode-Unique Binary Search Trees II
- [leetcode] Unique Binary Search Trees II
- LeetCode - Unique Binary Search Trees II
- LeetCode 95: Unique Binary Search Trees II
- Leetcode Unique Binary Search Trees II
- [LeetCode] Unique Binary Search Trees II
- Leetcode: Unique Binary Search Trees II
- leetcode Unique Binary Search Trees II
- 【Leetcode】Unique Binary Search Trees II
- LeetCode | Unique Binary Search Trees II
- Leetcode Unique Binary Search Trees II
- [LeetCode] Unique Binary Search Trees II
- TCP协议疑难杂症全景解析
- Ubuntu Install Hbase 单机和多机
- 如何写出更好的Java代码
- mysql常见问题解决办法
- 关于Xcode的Other Linker Flags
- 【leetcode】Unique Binary Search Trees II
- Hive 内建操作符与函数开发
- Windows socket之Select模型开发
- java list 交集 并集 差集 去重复并集
- awk 用法
- pl/sql安装备忘录
- gzip命令行参数用法
- ios开发常用的宏
- 将Cygwin命令行窗口集成到Windows右键菜单