从头做leetcode之leetcode 108 将有序数组转换为二叉搜索树

    技术2026-03-27  13

    108.将有序数组转换为二叉搜索树

    将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。

    本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* sortedArrayToBST(vector<int>& nums) { return BST(nums,0,nums.size()-1); } TreeNode* BST(vector<int>& nums,int start,int end){ if(start > end) return nullptr; int mid = (start + end) / 2; int flag = nums[mid]; TreeNode *tmp = new TreeNode(flag); tmp->left = BST(nums,start,mid - 1); tmp->right = BST(nums,mid + 1,end); return tmp; } };

    通过时间:

    Processed: 0.012, SQL: 9