class TreeNode {
public:
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
class Tree {
public:
TreeNode* root;
Tree() : root(nullptr) {}
void insert(int val) {
if (!root) {
root = new TreeNode(val);
return;
}
TreeNode* cur = root;
while (true) {
if (val < cur->val) {
if (!cur->left) {
cur->left = new TreeNode(val);
return;
}
cur = cur->left;
} else {
if (!cur->right) {
cur->right = new TreeNode(val);
return;
}
cur = cur->right;
}
}
}
void remove(int val) {
root = remove(root, val);
}
TreeNode* remove(TreeNode* node, int val
树(删除,插入,左右旋,重构)
于 2023-03-24 20:40:40 首次发布