这个题是在编程宝典上看到的,不是自己写的,贴出来共享。
创建一棵高度最小的二叉树,必须让左右子树的节点数越接近越好。
TreeNode CreateMinBST(int arr[], int start, int end)
{
if(end < start)
return NULL;
int mid = (start + end)/2;
TreeNode n = new TreeNode(arr[mid]);
n.left = CreateMinBST(arr, start, mid);
n.right = CreateMinBST(arr, mid+1, end);
return n;
}