package com.interview.algorithms.tree; import com.interview.basics.model.tree.BinarySearchTree; import com.interview.basics.model.tree.BinaryTreeNode; /** * Created with IntelliJ IDEA. * User: stefanie * Date: 7/17/14 * Time: 11:00 AM */ public class C5_11_SortedArray2BalancedBST<T extends Comparable> { public BinarySearchTree<T> create(T[] elements){ BinaryTreeNode root = createTree(elements, 0, elements.length - 1); return new BinarySearchTree<T>(root); } private BinaryTreeNode<T> createTree(T[] elements, int start, int end){ if(start > end) return null; int mid = start + (end - start) / 2; BinaryTreeNode<T> node = new BinaryTreeNode<>(elements[mid]); node.setLeft(createTree(elements, start, mid - 1)); node.setRight(createTree(elements, mid + 1, end)); return node; } }