void DeleteChildren(BSTNode *node)
{
// Recurse left down the tree...
if(node->HasLeftChild()) DeleteChildren(node->GetLeftChild());
// Recurse right down the tree...
if(node->HasRightChild()) DeleteChildren(node->GetRightChild());
// Clean up the data at this node.
node->ClearData(); // assume deletes internal data
// Free memory used by the node itself.
delete node;
}
// Call this from external code.
DeleteChildren(rootNode);
该函数正在递归删除BST。函数参数 - 指针或指针的引用?
我有一个关于第一行的问题,BSTNode *node
, 我应该修改它为BSTNode *& node
?
你有问题的代码,让你觉得有什么问题吗?我看起来很好。 – Kai 2011-02-18 16:19:12