zoukankan      html  css  js  c++  java
  • 14.高度最小的BST

    题目描述

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

    给定一个有序序列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);
    
    	}
    
    }
    

      

  • 相关阅读:
    POJ 2112 二分+最大流
    POJ 3281 最大流
    枚举------暴力与优化
    动态规划入门
    简单二叉树
    花式WA
    18年第十二届东北四省赛
    18年第十三届黑龙江省赛
    ACM中的java的使用;
    CF#483(div2 C)
  • 原文地址:https://www.cnblogs.com/mlz-2019/p/4774328.html
Copyright © 2011-2022 走看看