二分探索木をクリアするためにこの方法に出会いました。コードは教科書に載っています。最後にノード一時を作成して削除する必要があるのはなぜですか? サブルートを null にする代わりに削除してみませんか?
void Binary_tree<Entry> :: recursive_clear(Binary_node<Entry> * &sub_root)
/* Post: The subtree rooted at sub_root is cleared. */
{
Binary_node<Entry> *temp = sub_root;
if (sub_root == NULL) return;
recursive_clear(sub_root->left);
recursive_clear(sub_root->right);
sub_root = NULL;
delete temp;
}