时间: 2020-06-14 10:17
- 删除函数 (递归法)
btree* Delete(btree* head, int key) {
if (!head) {
return NULL;
}
if (key < head->data) {
head->left = Delete(head->left, key);
return head;
}
if (key > head->data) {
head->right = Delete(head->right, key);
return head;
}
if (!(head->left) && !(head->right)) {
return NULL;
}
if (head->left && !(head->right)) {
return head->left;
}
if (!(head->left) && head->right) {
return head->right;
}
int val = find(head->left);
head->data = val;
head->left = Delete(head->left, key);
return head;
}
- int find(btree* head) 函数–(递归法)
int find(btree* head) {
if (!(head->right)) {
return head->data;
}
return find(head->right);
}