1. 程式人生 > >【20】高度最小的BST

【20】高度最小的BST

val ini null strong span 序列 一個 star code

【題目】

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

給定一個有序序列int[] vals,請返回創建的二叉查找樹的高度。

【代碼】

import java.util.*;

public class MinimalBST {
    
     public int buildMinimalBST(int[] vals) {
         if(vals == null || vals.length <1)
            return 0;
         return buildMinimalBSTCore(vals, 0 , vals.length-1);
     }
    
public int buildMinimalBSTCore(int[] vals, int start, int end) { if(end < start) return 0; int mid = (start + end)/2; int leftH = 1 + buildMinimalBSTCore(vals, start, mid-1); int rightH = 1 + buildMinimalBSTCore(vals, mid+1, end); return
Math.max(leftH, rightH); } }

【20】高度最小的BST