diff --git a/bintree.c b/bintree.c index 6a95f4e..b1cf8f5 100644 --- a/bintree.c +++ b/bintree.c @@ -59,7 +59,17 @@ void *nextTreeData(TreeNode *root) // Releases all memory resources (including data copies). void clearTree(TreeNode *root) { + if (root == NULL) return; // Basisfall: leerer Teilbaum + // Rekursiv zuerst die Kinder freigeben + clearTree(root->left); + clearTree(root->right); + + // Daten freigeben + free(root->data); + + // Knoten selbst freigeben + free(root); } // Returns the number of entries in the tree given by root.