【发布时间】:2012-06-01 05:11:41
【问题描述】:
我编写了一个函数来使 BST 的所有叶子无效。 BST当然有一个左右指针和一个叫做data的char来存储节点的值。
void removeLeaves(struct Tree* T){
if(T->left == NULL && T->right == NULL){
printf("removing %c\n", T->data);
T=NULL;
}
else{
if(T->left!=NULL){
removeLeaves(T->left);
}
if(T->right!=NULL){
removeLeaves(T->right);
}
}
}
我在调用这个函数之前和之后打印树。 尽管上面的 print 语句有效并打印了无效的节点,但结果树是相同的。 我有类似的东西:
print(BST);
removeLeaves(BST);
print(BST);
知道发生了什么吗? 谢谢。
【问题讨论】:
标签: c pointers struct binary-search-tree