用C语言实现二叉树的节点删除
时间: 2023-05-20 20:03:41 浏览: 132
数据结构c语言版上机答案,广工的
可以使用以下代码实现二叉树节点的删除:
```
struct Node* deleteNode(struct Node* root, int key) {
if (root == NULL) return root;
if (key < root->val)
root->left = deleteNode(root->left, key);
else if (key > root->val)
root->right = deleteNode(root->right, key);
else {
if (root->left == NULL) {
struct Node* temp = root->right;
free(root);
return temp;
}
else if (root->right == NULL) {
struct Node* temp = root->left;
free(root);
return temp;
}
struct Node* temp = minValueNode(root->right);
root->val = temp->val;
root->right = deleteNode(root->right, temp->val);
}
return root;
}
```
其中,minValueNode() 函数用于找到以给定节点为根的子树中的最小值节点。
阅读全文