码迷,mamicode.com
首页 > 其他好文 > 详细

14.高度最小的BST

时间:2015-08-31 23:14:31      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

题目描述

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

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

返回高度的代码如下:

import java.util.*;

public class MinimalBST {
    public int buildMinimalBST(int[] vals) {
       return (int)(Math.log(vals.length)/Math.log(2))+1;
    }
}

创建高度最小的二叉查找树代码如下:

public class createBST {
	
	static TreeNode createMinimalBST(int array[]){
		return createMinimalBST(array,0,array.length-1);
	}
	
	static TreeNode createMinimalBST(int[]arr,int start,int end){
		if(end<start){
			return null;
		}
		int mid=(start+end)/2;
		TreeNode n=new TreeNode(arr[mid]);
		n.left=createMinimalBST(arr,start,mid-1);
		n.right=createMinimalBST(arr,mid+1,end);
		return n;
	}

	public static void main(String[] args) {
		int []arr={0,1,2,3,4,5,6,7};
		TreeNode root=createMinimalBST(arr);
		System.out.println(root.right.left.val);

	}

}

  

14.高度最小的BST

标签:

原文地址:http://www.cnblogs.com/mlz-2019/p/4774328.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!