本文共 1398 字,大约阅读时间需要 4 分钟。
struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution {public: TreeNode* Convert2BST(vector & num, int start, int end) { if(start > end) return NULL; int mid = (start+end)/2; TreeNode* pNode = new TreeNode(num[mid]); pNode->left = Convert2BST(num, start, mid-1); pNode->right = Convert2BST(num, mid+1, end); return pNode; } TreeNode *sortedArrayToBST(vector &num) { // Start typing your C/C++ solution below // DO NOT write int main() function return Convert2BST(num, 0, num.size()-1); }};
second time
/** * 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* sortedArrayToBSTUtil(vector & num, int start, int end) { if(start > end) return NULL; int mid = start+(end-start)/2; TreeNode* root = new TreeNode(num[mid]); root->left = sortedArrayToBSTUtil(num, start, mid-1); root->right = sortedArrayToBSTUtil(num, mid+1, end); return root; } TreeNode *sortedArrayToBST(vector &num) { // Start typing your C/C++ solution below // DO NOT write int main() function return sortedArrayToBSTUtil(num, 0, num.size()-1); }};
转载地址:http://aoxti.baihongyu.com/