我是编程的初学者,目前正在学习bst。我找到了几个删除bst的函数,但在我看来它们过于复杂。所以我感兴趣的是我自己的代码清理了二进制搜索树的所有内存,每个指针和值。
void deletebst (Node*& node)
{
if (node!=NULL)
{
deletebst (node->ldes); //deletes a left descendant recursively
deletebst (node->rdes); //same but with the right one
delete node; //deletes the value which a pointer 'node' points to
node=NULL; //sets a pointer 'node' to NULL, so deletes a pointer itself
}
}
答案 0 :(得分:1)
正如评论部分所指出的那样,删除后不需要设置node = NULL。剩下的代码很好。干杯!