删除二叉树所有叶子节点

//删除二叉树中的所有叶子节点
void DeleteLev(BiTree T,BiTree f,bool flag){
    if(T){//T is not NULL
        if(T->l){
            DeleteLev(T->l,T,true);
        }
        if(T->r){
            DeleteLev(T->r,T,false);
        }else{//T is a level node
            free(T);
            if(f){// T is not root
                if(flag)f->l = NULL;
                else f->r = NULL;
            }
            
        }
    }
}

void main(){
    Init(T);
    DeleteLev(T,NULL,true);
}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页