求大佬指点,一个二叉树删除所有叶结点算法如下:
void defoliate(BiTree &T)
{
if(!T) return ;
if(T->left==null&&T->right==null)
{
delte T;
T=null;
}
else
{
defoliate(T->left);
defoliate(T->right);
}
};
萌新刚接触数据结构,有点想不明白,想问问各路大神,这个算法是基于后序遍历的思想吗,还有就是这个算法删除一个非叶结点的叶结点子树后,自己不也变成叶结点了吗,那最后是不是会把所有结点全删除啊?希望大佬能指点一下,树的算法设计题很头疼,不知道该如何下手。