给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。
样例
给出数组 [1,2,3,4,5,6,7]
, 返回
4
/ \
2 6
/ \ / \
1 3 5 7
挑战
可能有多个答案,返回任意一个即可
/**
* Definition of TreeNode:
* public class TreeNode {
* public int val;
* public TreeNode left, right;
* public TreeNode(int val) {
* this.val = val;
* this.left = this.right = null;
* }
* }
*/
public class Solution{
public TreeNode sortedArrayToBST(int[] num){
if(num.length==0)
return null;
return sortedArrayToBST(num,0,num.length-1);
}
public TreeNode sortedArrayToBST(int[] num,int start,int end)
{
if(start>end)
return null;
int mid=(start+end)/2;
TreeNode root=new TreeNode(num[mid]);
root.left=sortedArrayToBST(num,start,mid-1);
root.right=sortedArrayToBST(num,mid+1,end);
return root;
}
}