1 /**
 2  * Definition for a binary tree node.
 3  * struct TreeNode {
 4  *     int val;
 5  *     TreeNode *left;
 6  *     TreeNode *right;
 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 8  * };
 9  */
10 
11 static int wing=[]()
12 {
13     std::ios::sync_with_stdio(false);
14     cin.tie(NULL);
15     return 0;
16 }();
17 
18 class Solution 
19 {
20 public:
21     TreeNode* sortedArrayToBST(vector<int>& nums) 
22     {
23         if(nums.size()==0)
24             return NULL;
25         if(nums.size()==1)
26             return new TreeNode(nums[0]);
27         
28         int mid=nums.size()/2;
29         TreeNode* root=new TreeNode(nums[mid]);
30         
31         vector<int> vleft(nums.begin(),nums.begin()+mid);
32         vector<int> vright(nums.begin()+mid+1,nums.end());
33         
34         root->left=sortedArrayToBST(vleft);
35         root->right=sortedArrayToBST(vright);
36         
37         return root;
38     }
39 };

递归建树,问题不大

posted on 2018-04-19 10:57  高数考了59  阅读(104)  评论(0)    收藏  举报