题目链接:108. 将有序数组转换为二叉搜索树
标签:树、二叉搜索树、数组、分治、二叉树
方法一:中序遍历,总是选择中间位置左边的数字作为根节点
class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
TreeNode tree = formTree(nums,0,nums.length-1);
return tree;
}
public TreeNode formTree(int[] nums, int left, int right) {
if (left > right) {
return null;
}
// 总是选择中间位置左边的数字作为根节点
int mid = (left + right) / 2;
TreeNode root = new TreeNode(nums[mid]);
root.left = formTree(nums, left, mid - 1);
root.right = formTree(nums, mid + 1, right);
return root;
}
}