Balance a Binary Search Tree — CaffeCode