思路
·高度平衡:每个节点的左右子树高度相差不超过1
·二叉搜索树:每棵树满足:左节点<根节点<右节点
1)取有序数组中间的数作为根节点,左边的为左子树,右边的为右子树
2)左子树递归
3)右子树递归
代码
public TreeNode sortedArrayToBST(int[] nums) {
return buildBST(nums,0,nums.length-1);
}
private TreeNode buildBST(int[] nums, int left, int right) {
if(left>right){
return null;
}
int mid=(left+right)/2;
int val=nums[mid];
TreeNode root = new TreeNode(val);
root.left=buildBST(nums,left,mid-1);
root.right=buildBST(nums,mid+1,right);
return root;
}