[英]BST pre-order deletion
我想知道是否可以在预购模式下释放整个二进制搜索树。 我有这个功能:
void preorder_del(struct s_nodo ** tree)
{
if (*tree != NULL)
{
free(*tree);
preorder_del(&(*tree)->left);
preorder_del(&(*tree)->right);
}
}
我认为这行不通,释放树的第一片叶子不会让我想起预订单,对吗?
您应该记录left
和right
局部避免后访问释放的指针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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.