其实也是一个递归的问题, 将有序数组从中间拿一个元素作为中心结点, 然后两边又是相同的子问题
def sortedArrayToBST(nums: Array[Int]): TreeNode = {
def go(from: Int, to:Int) :TreeNode = {
if(to < from) {
null
} else if (from == to) {
new TreeNode(nums(from))
} else {
val center = (from + to) / 2
val node = new TreeNode(nums(center))
node.left = go(from, center - 1)
node.right = go(center + 1, to)
node
}
}
if(nums.isEmpty) null
else go(0, nums.length - 1)
}