Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
TreeNode* getnode(int x){TreeNode* t = (TreeNode *)malloc(sizeof(TreeNode));t->val = x;t->left = NULL;t->right =NULL;return t;}TreeNode *sortedArrayToBST(vector<int> &num, int left, int right){if(left > right)return NULL;int mid = (left + right) / 2;TreeNode* root = getnode(num[mid]);root->left = sortedArrayToBST(num, left, mid -1);root->right = sortedArrayToBST(num, mid+1, right);return root;}TreeNode *sortedArrayToBST(vector<int> &num) {if(num.size() <= 0)return NULL;return sortedArrayToBST(num, 0, num.size() -1);}
No comments:
Post a Comment