构造所有二叉查找树
来源:互联网 发布:python asyncio.wait 编辑:程序博客网 时间:2024/05/22 03:23
给出n,生成所有由1...n为节点组成的不同的二叉查找树
Yes
样例
给出n = 3,生成所有5种不同形态的二叉查找树:
1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \2 1 2 3
/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left = this->right = NULL; * } * } */class Solution {public: /** * @paramn n: An integer * @return: A list of root */ vector<TreeNode *> generateTrees(int n) { // write your code here vector<TreeNode*>res=helper(1,n); return res; } vector<TreeNode*> helper(int start,int end){ vector<TreeNode*>res; if(start>end){ res.push_back(NULL); return res; } if(start==end){ res.push_back(new TreeNode(start)); return res; } if(start<end){ for(int i=start;i<=end;i++){ vector<TreeNode*>left=helper(start,i-1); vector<TreeNode*>right=helper(i+1,end); for(int l=0;l<left.size();l++){ for(int r=0;r<right.size();r++){ TreeNode*root=new TreeNode(i); root->left=left[l]; root->right=right[r]; res.push_back(root); } } } return res; } } };
0 0
- 构造所有二叉查找树
- 二叉树系列---构造二叉查找树
- 非递归构造二叉查找树
- 二叉查找树的构造及其遍历
- 构造最优二叉查找树的时间复杂度分析
- 构造最优二叉查找树的时间复杂度分析
- 二叉查找树的构造与遍历[Java实现]
- 二叉查找树的构造与遍历[Java实现]
- 构造最优二叉查找树的动态规划算法
- 证明二叉查找树所有节点的平均深度
- 查找--二叉查找树
- Javascript数据结构算法之二叉查找树BST(构造,遍历,查找,删除,计数)
- 二叉排序树(二叉查找树)BST构造,节点插入,节点查找,节点删除(java)
- 二叉树、二叉查找树
- 二叉树 & 二叉查找树
- 【查找结构】二叉查找树
- 查找之二叉树查找
- 查找之二叉树查找
- HDU5478 Can you find it 快速幂取模
- Java的OutOfMemory问题
- iOS Tips-01
- java jsp+servlet文件上传下载、本地及网络资源的下载
- "_stringprep", referenced from:+[LibIDN prepNode:] in LibIDN.o
- 构造所有二叉查找树
- css伪类,a标签的四种状态
- 找出最长递增子序列
- 英语的春天--程序员学英语
- F5负载均衡器的功能介绍
- 关于OCP
- 【读书笔记】iOS-编码对象
- hiho一下第二周——字典树
- HDU 5480 Conturbatio(并查集或前缀和)