void Tree::destroySubtree(TreeNode *root) { if (root == NULL) return; destroySubtree(root->getLeft()); destroySubtree(root->getRight()); delete root; }
void BST<T1, T2>::destroySubtree(BST<T1, T2> *node) { if (node == NULL) return; destroySubtree(node->mLeft); destroySubtree(node->mRight); // Delete the node at the root. delete node; }
BST<T1, T2>::~BST() { destroySubtree(mRootNode); }
Tree::~Tree() { if (root != NULL) { destroySubtree(root); root = NULL; } }