以下是引用不同认为在2015-12-12 22:12:12的发言:
int Delete(BiTree &p)
{
BiTree q, s;
if( !p->lchild&&!p->rchild )
p=NULL;
else if(!p->lchild)
{
q=p;
p=p->rchild;
free(q);
}
else if(!p->rchild)
{
q=p;
p=p->lchild;
free(q);
}
像这样,p的指向是改变了,但原来的p地址不是给q了么,这样子有把P这个结点删除么
你说p指向变了。。。对但不是重点,重点是p代表的结点变了,这里的局部代码对p代表的原结点通过q删除后
接着对p操作转嫁子树