class Solution {
public:
TreeNode* sortedArrayToBST(vector<int>& nums) {
int left = 0;
TreeNode* root = binarytree(left, nums.size() - 1, nums);
return root;
}
// 第一步找到左右区间 [left,right]
// 第二步找到中点,创建节点
// 第三步递归左节点,右节点
TreeNode* binarytree(int start, int end, vector<int>& nums) {
if (start > end) {
return nullptr;
}
int mid = (end + start) / 2;
TreeNode* root = new TreeNode(nums[mid]);
root->left = binarytree(start, mid - 1, nums);
root->right = binarytree(mid + 1, end, nums);
return root;
}
};
[力扣]有序数组转化为平衡二叉树
最新推荐文章于 2024-10-08 10:36:00 发布