高度最小的BST之程序员面试经典
2016-05-08 20:34
344 查看
题目描述
对于一个元素各不相同且按升序排列的有序序列,请编写一个算法,创建一棵高度最小的二叉查找树。给定一个有序序列int[] vals,请返回创建的二叉查找树的高度。
二叉排序树(Binary Sort Tree)又称二叉查找树(Binary
Search Tree),亦称二叉搜索树。
二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:
(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;
(3)左、右子树也分别为二叉排序树;
(4)没有键值相等的节点。
因为只要求高度,所以代码如下:
import java.util.*; public class MinimalBST { public int buildMinimalBST(int[] vals) { return (int)(Math.log10(vals.length)/Math.log10(2))+1; } }
相关文章推荐
- 专家:程序员不配叫工程师
- Java面试总结(二)
- 面试常见题
- 面试常见题
- 《java入门第一季》之面向对象匿名内部类面试题
- 《java入门第一季》之面向对象匿名内部类面试题
- 剑指offer面试题(一)
- JAVA常考面试题
- [面试常考]排序算法总结
- MySQL 面试中的问题汇总
- 打造程序员的高效生产力工具-mac篇
- 程序员开发辅助工具总结
- 剑指offer 面试题(二维数组中的查找) (2)
- 优秀程序员的这些秘诀,你知道几条?【转载】
- 霍兰德-职业兴趣测试
- 程序员的十大优秀习惯
- 搞定面试中的链表题目
- java面试题 用1,2,2,3,4,5六个数字,组成一个6位数。 第三位数不能是2;3和5不能相邻。
- 百度面试总结
- 如何利用Google成为一个更好的程序员