Optimal Binary Search Tree In Java