【发布时间】:2015-09-05 06:29:04
【问题描述】:
这是我用来创建 BST 的节点。我怎样才能释放这棵树。以下是我尝试过的尝试,但我不太确定如何释放 str。
typedef struct tree_s tree_t;
struct tree_s
{
char *str;
tree_t *left;
tree_t *right;
};
void freeTree(tree_t *tree) {
if (tree == NULL)
{
return;
}
/* first delete both subtrees */
freeTree(tree->left);
free(tree->str);
freeTree(tree->right);
/* then delete the node */
free(tree);
}
【问题讨论】:
-
你是如何分配“str”开始的?
-
@selbie 我 malloc 了
-
一旦你删除了整个树,第二次你将再次添加节点时,你可能会得到错误,因为你一定没有将
root的值更改为 NULL -
你的代码在我看来不错
标签: c tree binary-search-tree free