繁体   English   中英

BST预订删除

[英]BST pre-order deletion

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

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);
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM