在c中递归删除trie

时间:2018-05-26 18:41:44

标签: c pointers recursion struct trie

我一直试图递归删除trie。 trie的typedef如下:

typedef struct _trie{

bool word;
struct _trie *link[27];
}
trie;

删除的递归代码如下,它在第一次调用时将trie的根作为输入

void destroy(trie **node){

if(node == NULL){

    fprintf(stderr, "Could not destroy as NULL trie\n");
    return;
}

for(int i = 0;i < 27;i++){

    if((*node)->link[i] != NULL){

        destroy(&((*node)->link[i]));
    }
}

free(node);
}

每次运行它时,我都会在free()上获得一个无效指针。非常感谢您的帮助!

0 个答案:

没有答案