1. 程式人生 > >高度最小的BST之程式設計師面試經典

高度最小的BST之程式設計師面試經典

題目描述

對於一個元素各不相同且按升序排列的有序序列,請編寫一個演算法,建立一棵高度最小的二叉查詢樹。

給定一個有序序列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;
    }
}