diff --git a/bintree.c b/bintree.c index 312e466..7e3eab7 100644 --- a/bintree.c +++ b/bintree.c @@ -72,10 +72,21 @@ void *nextTreeData(TreeNode *root) // Releases all memory resources (including data copies). void clearTree(TreeNode *root) { - + if (root == NULL) + return; + // Erst linken Knoten löschen + clearTree(root->left); + + // Dann rechten Knoten löschen + clearTree(root->right); + + // Dann eigenen Speicher freigeben + free(root->data); + free(root); } + // Returns the number of entries in the tree given by root. unsigned int treeSize(const TreeNode *root) {