gpt4 book ai didi

c - BST预购删除

转载 作者:太空宇宙 更新时间:2023-11-04 02:51:34 26 4
gpt4 key购买 nike

我想知道是否可以在预序模式下释放整个二叉搜索树。我有这个功能:

void preorder_del(struct s_nodo ** tree)
{
if (*tree != NULL)
{
free(*tree);
preorder_del(&(*tree)->left);
preorder_del(&(*tree)->right);
}
}

我认为这行不通,释放树的第一片叶子不会让我记忆起预订,对吧?

最佳答案

您应该在本地记录 leftright 以避免在 free(*tree) 之后访问释放的指针。

 if (*tree != NULL)
{
struct s_nodo *l = (*tree)->left;
struct s_nodo *r = (*tree)->right;
free(*tree);
preorder_del(&l);
preorder_del(&r);
}

关于c - BST预购删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21630673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com