我有這樣的代碼:C:釋放二叉搜索樹
node* free_tree(node *root){
if(root != NULL){
free_tree(root->left);
free_tree(root->right);
free(root->name);
free(root);
}
return NULL;
}
我知道這是不正確的,正確的版本是:
root -> left = free_tree(root->left);
root -> right = free_tree(root->right);
我不明白的是,爲什麼這是否工作?當我使用NULL從free_tree(root->left)
返回時,我的函數需要一些接收NULL值的值,這裏不是這種情況,所以我不明白,爲什麼這會起作用?爲什麼這不是編譯錯誤?
爲什麼你會期望被要求分配一個返回值? – ShadowRanger
爲什麼它應該是一個編譯錯誤? –
int funct(),主要我會爲例如int x = funct()。同樣在這裏...我錯了嗎? –