【发布时间】:2010-02-11 02:57:14
【问题描述】:
这应该是遍历一个 BST 并删除每个节点,包括根节点。但是,最后,我收到消息“根仍有左节点”。为什么没有删除所有节点?
void deleteTree()
{
deleteNode(root);
if(root->right)
cout << "root still has a right node" << endl;
if(root->left)
cout << "root still has a left node" << endl;
root = 0;
}
void deleteNode(node *p)
{
if(p->left)
{
deleteNode(p->left);
p->left = 0;
}
if(p->right)
{
deleteNode(p->right);
p->right = 0;
}
cout << "Deleting node containing " << p->data << endl;
delete p;
}
【问题讨论】:
标签: c++ pointers binary-tree binary-search-tree