day17打卡
- 修剪二叉搜索树
/**
-
Definition for a binary tree node.
-
struct TreeNode {
-
int val;
-
TreeNode *left;
-
TreeNode *right;
-
TreeNode() : val(0), left(nullptr), right(nullptr) {}
-
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
-
TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
-
};
/
class Solution {
public:
TreeNode trimBST(TreeNode* root, int low, int high) {
if(root == nullptr)
{
return nullptr;
}
if(root->val < low)
{
TreeNode *cur = root->right;TreeNode *right = trimBST(cur, low, high); return right; } if(root->val > high) { TreeNode *cur = root->left; TreeNode *left = trimBST(cur, low, high); return left; } root->left = trimBST(root->left, low, high); root->right = trimBST(root->right, low, high); return root;
}
};
2.将有序数组转化为二叉搜索树
/**
- Definition for a binary tree node.
- struct TreeNode {
-
int val;
-
TreeNode *left;
-
TreeNode *right;
-
TreeNode() : val(0), left(nullptr), right(nullptr) {}
-
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
-
TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
- };
*/
class Solution {
public:
TreeNode *traversal(vector& nums, int low, int high)
{
if(low <= high)
{
int mid = low + ((high - low) / 2);
TreeNode root = new TreeNode(nums[mid]);
root->left = traversal(nums, low, mid-1);
root->right = traversal(nums, mid+1, high);
return root;
}
return nullptr;
}
TreeNode sortedArrayToBST(vector& nums) {
return traversal(nums, 0, nums.size()-1);
}
};
3.将二叉搜索树转化为累加树
/**
- Definition for a binary tree node.
- struct TreeNode {
-
int val;
-
TreeNode *left;
-
TreeNode *right;
-
TreeNode() : val(0), left(nullptr), right(nullptr) {}
-
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
-
TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
- };
/
class Solution {
public:
TreeNode convertBST(TreeNode* root) {
if(root == nullptr)
{
return nullptr;
}
root->right = convertBST(root->right);
if(pre)
{
root->val += pre->val;
}
pre = root;
root->left = convertBST(root->left);
return root;
}
private:
TreeNode *pre = nullptr;
};
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步