算法第十周解题

xiaoxiao2021-02-28  60

108. Convert Sorted Array to Binary Search Tree

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

解题思路:  int mid = (begin + end) / 2;

/** * 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) { TreeNode* root =NULL; if(nums.size() == 0) return NULL; BSTreeCons(nums, 0, nums.size() - 1, root); return root; } void BSTreeCons(vector<int>& nums, int begin, int end, TreeNode*& root){ if(begin > end) return; int mid = (begin + end) / 2; root = new TreeNode(nums[mid]); BSTreeCons(nums, begin, mid - 1, root -> left); BSTreeCons(nums, mid + 1, end, root -> right); } };

结果如下:

转载请注明原文地址: https://www.6miu.com/read-80988.html

最新回复(0)