程序员面试金典——高度最小的BST

来源:互联网 发布:神州泰岳 知乎 编辑:程序博客网 时间:2024/04/29 21:16

题目描述

对于一个元素各不相同且按升序排列的有序序列,请编写一个算法,创建一棵高度最小的二叉查找树。

给定一个有序序列int[] vals,请返回创建的二叉查找树的高度。


思路:

每次取出数组中点,然后分左右子树,依次递归即可。

import java.util.*;public class MinimalBST {    public int buildMinimalBST(int[] vals) {        // write code here        if(vals.length==0)return 0;  int height = buildBST(vals,0,vals.length-1); return height;    }         public int buildBST(int vals[],int start,int end){ if(start>end)return 0;  int mid = (start+end)/2; int leftheight =  1+buildBST(vals,  start, mid-1); int rightheight = 1+buildBST(vals,  mid+1, end); if(leftheight>rightheight)return leftheight; else return rightheight; }}


0 0
原创粉丝点击