Leetcode sortedArrayToBST

来源:互联网 发布:java测试工程师累吗 编辑:程序博客网 时间:2024/05/23 01:14
/**
 * Definition for binary tree
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution1 {
public:
    TreeNode *createTree(vector<int> &num, int left, int right)
    {
        if (left > right)
            return NULL;
            
        int mid = (left + right) / 2;
        
        TreeNode *leftNode = createTree(num, left, mid - 1);
        TreeNode *rightNode = createTree(num, mid + 1, right);
        
        TreeNode *node = new TreeNode(num[mid]);
        
        node->left = leftNode;
        node->right = rightNode;
        
        return node;
    }
    
    TreeNode *sortedArrayToBST(vector<int> &num) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        if(num.size()==0)
            return NULL;
        TreeNode * root = new TreeNode(num.size()/2);
        root->left = createTree(num, 0, num.size()/2-1);
        root->right = createTree(num, num.size()/2-1, num.size()-1);

        return root;
    }
};
原创粉丝点击