[英]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.