【力扣】108.将有序数组转换为二叉搜索树
- 开源代码
- 2025-09-08 23:54:02

AC截图 题目 思路
因为nums数组是严格递增的,所以只需要每次选出中间节点,然后用左边部分构建左子树,用右边部分构建右子树。
代码 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: TreeNode* sortToBST(vector<int>& nums,int left,int right){ if(left>right){ return NULL; } int mid = (left+right)/2; TreeNode* root = new TreeNode(nums[mid]); root->left = sortToBST(nums,left,mid-1); root->right = sortToBST(nums,mid+1,right); return root; } TreeNode* sortedArrayToBST(vector<int>& nums) { return sortToBST(nums,0,nums.size()-1); } };【力扣】108.将有序数组转换为二叉搜索树由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【力扣】108.将有序数组转换为二叉搜索树”