654. 最大二叉树
class Solution {
public:
TreeNode* constructMaximumBinaryTree(vector<int>& nums) {
if(nums.size()==0) return nullptr;
int max=-1;
int index;
for(int i=0;i<nums.size();i++)
{
if(nums[i]>max)
{
max=nums[i];
index=i;
}
}
TreeNode* root=new TreeNode(nums[index]);
vector<int> left(nums.begin(),nums.begin()+index);
vector<int> right(nums.begin()+index+1,nums.end());
root->left=constructMaximumBinaryTree(left);
root->right=constructMaximumBinaryTree(right);
return root;
617. 合并二叉树
class Solution {
public:
TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {
if(root1!=nullptr&&root2!=nullptr) {root1->val=root1->val+root2->val;}
else if(root1==nullptr&&root2!=nullptr) return root2;
else if(root1!=nullptr&&root2==nullptr) return root1;
else return nullptr;
root1->right=mergeTrees(root1->right,root2->right);
root1->left=mergeTrees(root1->left,root2->left);
return root1;
}
};
700. 二叉搜索树中的搜索
class Solution {
public:
TreeNode* searchBST(TreeNode* root, int val) {
if(root==nullptr) return nullptr;
if(root->val==val) return root;
else if(root->val>val)
{
return searchBST(root->left,val);
}
else return searchBST(root->right,val);
}
};
98. 验证二叉搜索树
class Solution {
public:
void mid(TreeNode* root,vector<int>& res)
{
if(root==nullptr) return;
mid(root->left,res);
res.push_back(root->val);
mid(root->right,res);
}
bool isValidBST(TreeNode* root) {
vector<int> res;
mid(root,res);
for(int i=1;i<res.size();i++)
{
if(res[i]<=res[i-1]) return false;
}
return true;
}
};
需要重新做的题目
617. 合并二叉树
98. 验证二叉搜索树文章来源地址https://www.toymoban.com/news/detail-612505.html
文章来源:https://www.toymoban.com/news/detail-612505.html
到了这里,关于代码随想录第19天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!