void _deleteTree(struct node* node) { if (node == NULL) return; _deleteTree(node->left); _deleteTree(node->right); printf("%d ", node->data); free(node); }
/* This function is same as deleteTree() in the previous program */ void _deleteTree(struct node* node) { if (node == NULL) return; /* first delete both subtrees */ _deleteTree(node->left); _deleteTree(node->right); /* then delete the node */ printf("\n Deleting node: %d", node->data); free(node); }
/* Deletes a tree and sets the root as NULL */ void deleteTree(struct node** node_ref) { _deleteTree(*node_ref); *node_ref = NULL; }