2021-10-01

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;
	}
}

这是接着上一篇二叉树的创建以及中序遍历写的,在这要注意两个点
一是:函数参数必须要是引用
二是:在释放节点空间后,指向节点的指针必须要置空;
如果用的不是引用,而是值传递,到时候原来的二叉树的指针仍然指向原空间,而原空间却已经被释放,当再次遍历时会产生访问权限冲突的异常

上一篇:力扣刷题日记(链表)


下一篇:leetcode 148 排序链表