I have created the following function to delete a Node from a tree:
void delNode(int key, Node *root) {
if(root->data != key && root->left != NULL) {
delNode(key,root->left);
}
if(root->data != key && root->right != NULL) {
delNode(key,root->right);
}
if(root->data != key && root->left == NULL) {
return;
}
if(root->data != key && root->right == NULL) {
return;
}
if(root->data == key) {
root = NULL;
return;
}
}
I have the following function for traversal
void printInorder(Node *root) {
if(root!=NULL) {
printInorder(root->left);
printf("%d ",root->data);
printInorder(root->right);
}
}
When I delete an element & display the tree even the deleted node is shown.
PS: I want to delete the entire tree keeping the Node as the root