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 };
递归建树,问题不大
浙公网安备 33010602011771号