balanced bTree bottom-up O(log n) solution