Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
[Thoughts]
[Code]
1: TreeNode *sortedArrayToBST(vector<int> &num) {
2: return BuildTree(num, 0, num.size()-1);
3: }
4: TreeNode *BuildTree(vector<int> &num, int start, int end)
5: {
6: if(start>end) return NULL;
7: if(start == end) return new TreeNode(num[start]);
8: int mid = (start+end)/2;
9: TreeNode *node = new TreeNode(num[mid]);
10: node->left = BuildTree(num, start, mid-1);
11: node->right = BuildTree(num, mid+1, end);
12: return node;
13: }
本文详细介绍了如何将一个元素按升序排列的数组转化为一棵高度平衡的二叉搜索树(BST)。通过递归构建树结构,确保每个节点的左子树和右子树的高度差不超过1,从而实现平衡。此过程涉及到数组操作、递归算法以及二叉搜索树的基本概念。
1331

被折叠的 条评论
为什么被折叠?



