题目描述
对于一个元素各不相同且按升序排列的有序序列,请编写一个算法,创建一棵高度最小的二叉查找树。
给定一个有序序列int[] vals,请返回创建的二叉查找树的高度。
class MinimalBST {
public:
int buildMinimalBST(vector<int> vals) {
// write code here
//取有序数组中间数值作为二叉搜索树的根,这样高度最小。
return build(vals.size());
}
int build(int size)
{
if (size == 0)
{
return 0;
}
if (size == 1)
{
return 1;
}
return build(size / 2) + 1;
}
};
本文介绍了一种从有序序列构建最小高度二叉查找树的方法。通过选取序列中间元素作为根节点,递归地构建左右子树,最终实现树的高度最小化。
3022

被折叠的 条评论
为什么被折叠?



