【发布时间】:2014-01-04 14:29:59
【问题描述】:
尝试在 C++ 中实现 deleteTree 方法。此方法将树的根作为参数,因此应删除从根到叶的所有节点。我的代码在逻辑上似乎是正确的,但是每次运行它时都会出现无限循环。谁能找出问题所在?
template <class A, class B> void Tree<A,B>::deleteTree(Node<A,B>* rootNode) {
if (rootNode->left != NULL) {
deleteTree(rootNode->left);
}
if (rootNode->right != NULL) {
deleteTree(rootNode->right);
}
free(root);
}
【问题讨论】:
-
你的树有圆圈吗?
-
@thumbmunkeys,那会是一棵很有趣的树
-
为什么使用
free而不是delete?您是否使用malloc而不是new?或者free是你写的函数? -
@Leeor 人们会犯错,是吗? :)