#include<iostream>
#include<vector>
using namespace std;
struct TreeNode
{
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int val):val(val),left(NULL),right(NULL){};
};
class Solution1
{
public:
TreeNode* toTree(vector<TreeNode*>result)
{
if(result.empty())
return NULL;
return fun(result,result.begin(),result.end());
}
TreeNode* fun(vector<TreeNode*>result,vector<TreeNode*>::iterator first,vector<TreeNode*>::iterator last)
{
auto length=distance(first,last);
if(length<=0)
return NULL;
auto mid=first+length/2;
TreeNode* root=*mid;
root->left=fun(result,first,mid);
root->right=fun(result,mid+1,last);
return root;
}
void display(TreeNode* root)
{
if(!root)
return;
display(root->left);
cout<<root->val<<' ';
display(root->right);
}
};
void main()
{
Solution1 solution;
vector<TreeNode*>result;
for(int i=1;i<8;i++)
{
TreeNode* node=new TreeNode(i);
result.push_back(node);
}
TreeNode* root;
root=solution.toTree(result);
solution.display(root);
}
[leetcode]Convert Sorted Array to Binary Search Tree
最新推荐文章于 2022-02-19 22:56:38 发布