class Solution {
public:
TreeNode* constructMaximumBinaryTree(vector<int>& nums) {
return traverse(nums,0,nums.size()-1);
}
TreeNode* traverse(vector<int>& nums, int left, int right){
if(left>right)return nullptr;
int index=left;
for(int i=left+1;i<=right;i++){
if(nums[i]>nums[index]){
index=i;
}
}
TreeNode* root = new TreeNode(nums[index]);
root->left = traverse(nums,left,index-1);
root->right = traverse(nums,index+1,right);
return root;
}
};
刷题记录第七十天-最大二叉树
最新推荐文章于 2024-06-21 11:44:55 发布