1957

无聊蛋疼的1957写的低端博客
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

[leetcode]Convert Sorted Array to Binary Search Tre

Posted on 2013-12-31 19:58  1957  阅读(181)  评论(0编辑  收藏  举报

排好序的...

中间是root , root左边是left,root右边是right

递归建树.

 

/**
 * Definition for binary tree
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    TreeNode* createTree(vector<int>&num , int start , int end){
        if(end < start) return nullptr;
        int mid = (start + end) / 2;
        TreeNode* root = new TreeNode(num[mid]);
        root -> left = createTree(num , start , mid - 1);
        root -> right = createTree(num , mid + 1 , end);
        return root; 
    }
    TreeNode *sortedArrayToBST(vector<int> &num) {
       int size = num.size();
       if (size == 0) return nullptr;
       return createTree(num , 0 , size - 1);
    }
};