【题目】给定一个有序的数组sortArr,二叉树中没有重复值,通过这个有序数组生成一棵平衡二叉树,并且该二叉树的中序遍历结果与数组一致。
【解题思路】递归
用有序数组中最中间的树生成搜索二叉树的头节点,然后这个树左边的树生成左子树,右边的树生成右子树。
【举例】[1,2,3,4,5,6,7,8,9]
【C++】
TreeNode* generate(vector<int>& sortVec,int start,int end){
if(start > end) return NULL;
int mid = start + (end - start)/2;
TreeNode* head = new TreeNode(sortVec[mid]);
head->left = generate(sortVec,start,mid - 1);
head->righ