c++实现二叉树的删除
void BinaryTree::deleteTree(BinTreeNode* &p_root)
{
if (p_root != nullptr)
{
deleteTree(p_root->lchild);
deleteTree(p_root->rchild);
delete p_root;
p_root = nullptr;
}
}
这是接着上一篇二叉树的创建以及中序遍历写的,在这要注意两个点
一是:函数参数必须要是引用,
二是:在释放节点空间后,指向节点的指针必须要置空;
如果用的不是引用,而是值传递,到时候原来的二叉树的指针仍然指向原空间,而原空间却已经被释放,当再次遍历时会产生访问权限冲突的异常。