108. Convert Sorted Array to Binary Search Tree(和把一个单链表转换成BST树的思想一致)

来源:互联网 发布:linux需掌握的技能 编辑:程序博客网 时间:2024/06/01 08:09

Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

Subscribe to see which companies asked this question
解题思路:利用递归思想去解决,首先找到有序数组的中位数节点,即位于最中间位置的节点作为根节点,然后依次递归建立左右子树

TreeNode* sortedArrayToBST(vector<int>& nums) {        int len = nums.size();        if(len <= 0)            return NULL;        if(len == 1)            return new TreeNode(nums[0]);        int mid = len / 2;        TreeNode *root = new TreeNode(nums[mid]);        vector<int> leftVec(nums.begin(),nums.begin() + mid);        vector<int> rightVec(nums.begin() + mid + 1, nums.end());        root->left = sortedArrayToBST(leftVec);        root->right = sortedArrayToBST(rightVec);        return root;    }
0 0
原创粉丝点击