write a method to generate a perfectly binary search tree of
write a method to generate a perfectly binary search tree of height h with keys 1 through 2h+1-1 what is the running time of your method
Solution
// method to generate a perfectly binary search tree of height h with keys 1 through 2h+1-1
public BSTreeNode recursiveGenerateTree (int h)
 {
 return generateTree (1, Math.pow(2, h + 1) - 1);
 }
private BSTreeNode recursiveGenerateTree (int start, int end)
 {
 // base case start = end
 if (start == end)
 return new BSTreeNode(start, null, null);
   
 // set root
 int root = (start + end) / 2;
// recursively call left and right subtree
 BSTreeNode l = recursiveGenerateTree (start, root - 1);
 BSTreeNode r = recursiveGenerateTree (root + 1, end);
   
 return new BSTreeNode(root, l, r);
 }
Running time: O(2^h )
 h: height of tree.

