将有序数组转换为二叉搜索树
    将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。
    本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。

    示例:
    给定有序数组: [-10,-3,0,5,9],

    一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树:

    1. 0<br /> / \<br /> -3 9<br /> / /<br /> -10 5
    1. /**
    2. * Definition for a binary tree node.
    3. * public class TreeNode {
    4. * int val;
    5. * TreeNode left;
    6. * TreeNode right;
    7. * TreeNode(int x) { val = x; }
    8. * }
    9. */
    10. class Solution {
    11. public TreeNode sortedArrayToBST(int[] nums) {
    12. if(nums.length==0){
    13. return null;
    14. }
    15. return helper(nums,0,nums.length-1);
    16. }
    17. public TreeNode helper(int[] nums,int start,int end) {
    18. if(start > end){
    19. return null;
    20. }else{
    21. int mid = (start+end)/2;
    22. TreeNode root = new TreeNode();
    23. root.val =nums[mid];
    24. root.left =helper(nums,start,mid-1);//-1
    25. root.right=helper(nums,mid+1,end);
    26. return root;
    27. }
    28. }
    29. }

    https://cdn.jsdelivr.net/gh/future1314/images@master/img/%E6%88%AA%E5%B1%8F2020-09-15%20%E4%B8%8B%E5%8D%883.31.12.jpg

    https://cdn.jsdelivr.net/gh/future1314/images@master/img/%E6%88%AA%E5%B1%8F2020-09-15%20%E4%B8%8B%E5%8D%883.30.49.jpg