diff --git a/bintree.c b/bintree.c index 5cf82a9..3933958 100644 --- a/bintree.c +++ b/bintree.c @@ -26,7 +26,18 @@ void *nextTreeData(TreeNode *root) // Releases all memory resources (including data copies). void clearTree(TreeNode *root) { - + if(root->right) + clearTree(root->right); + else if (root->left) + clearTree(root->left); + else + { + root->data = 0; + free(root->data); + free(root->right); + free(root->left); + free(root); + } } // Returns the number of entries in the tree given by root.