lintcode把排序数组转换为高度最小的二叉搜索树
来源:互联网 发布:高邮2016秋季网络培训 编辑:程序博客网 时间:2024/05/21 17:31
1.描述:
给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。
注意事项
There may exist multiple valid solutions, return any of them.
给出数组 [1,2,3,4,5,6,7]
, 返回
4 / \ 2 6 / \ / \1 3 5 7
2.思路:
这个题需要写出两个函数,主函数调用支函数,支函数三个形参为数组,0,数组长度-1,先求出数组的中位数,作为新树的根节点,然后再找出中位数两边的数运用递归使这两个数作为根节点的左右子树。
3.代码:
TreeNode *sortedArrayToBST(vector<int> &A) {
return sortedArrayToBSTCore(A,0,A.size()-1);
}
TreeNode* sortedArrayToBSTCore(const vector<int>& num,int begin,int end)
{
if(begin>end)
return NULL;
int medium=begin+(end-begin)/2;
TreeNode* pNode=new TreeNode(num[medium]);
pNode->left=sortedArrayToBSTCore(num,begin,medium-1);
pNode->right=sortedArrayToBSTCore(num,medium+1,end);
return pNode;
}
4.感想:
当想用递归但已给函数的各个属性不允许递归时就可以考虑写两个函数,用支函数去实现递归。
- LintCode SortedArrayToBST 把排序数组转换为高度最小的二叉搜索树
- lintcode-把排序数组转换为高度最小的二叉搜索树-177
- 把排序数组转换为高度最小的二叉搜索树(LintCode)
- LintCode:把排序数组转换为高度最小的二叉搜索树
- lintCode(177)——把排序数组转换为高度最小的二叉搜索树
- LintCode:把排序数组转换为高度最小的二叉搜索树
- lintcode,把排序数组转换为高度最小的二叉搜索树
- LintCode | 177. 把排序数组转换为高度最小的二叉搜索树
- LintCode 把排序数组转换为高度最小的二叉搜索树
- 把排序数组转换为高度最小的二叉搜索树-LintCode
- lintcode——把排序数组转换为高度最小的二叉搜索树
- lintcode把排序数组转换为高度最小的二叉搜索树
- LintCode-把排序数组转换为高度最小的二叉搜索树
- lintcode 把排序数组转换为高度最小的二叉搜索树
- LintCode 把排序数组转换为高度最小的二叉搜索树
- LintCode 177-把排序数组转换为高度最小的二叉搜索树
- 把排序数组转换为高度最小的二叉搜索树-LintCode
- [LintCode 177] 把排序数组转换为高度最小的二叉搜索树(Python)
- 动态规划--开餐馆
- Python pass 语句
- vim打开文件时显示行号
- 网络字节序和主机字节序
- base64的算法详解
- lintcode把排序数组转换为高度最小的二叉搜索树
- JAVA 空间分配担保
- Docker学习之路
- 微信小程序 canvas绘制雷达图
- iOS攻防
- 第一次做树的题,并且用到了vector<pair<int,int> >,收获很大
- deepin下mysql的卸载和重装
- STL之五:set/multiset用法详解
- Windows系统功能模拟 C++(EasyX插件)—— 4th 界面绘制(二)