把排序数组转换为高度最小的二叉搜索树

来源:互联网 发布:caffe教程 编辑:程序博客网 时间:2024/06/08 12:48

给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树

样例
给出数组 [1,2,3,4,5,6,7], 返回


     4
   /   \
  2     6
 / \    / \
1   3  5   7

class Solution {  
public:  
    /**  
     * @param A: A sorted (increasing order) array  
     * @return: A tree node  
     */  
     TreeNode *x;  
     bool xxx=1;  
     void look(TreeNode *&x,int minn,int maxx,vector<int> A)  
     {  
        if(minn==maxx)  
         return;  
         x=new TreeNode ;  
         x->val=A[(minn+maxx-1)/2];  
         look(x->left,minn,(minn+maxx-1)/2,A);  
         look(x->right,(minn+maxx-1)/2+1,maxx,A);  
           
          
     }  
    TreeNode *sortedArrayToBST(vector<int> &A) {  
        int xx=A.size();  
        if(xx==0)  
        return NULL;  
        //x=new TreeNode;  
        look(x,0,xx,A);  
        return x;   
        // write your code here  
    }  
};  解题思路

0 0
原创粉丝点击