读书人

递归函数的return解决方案

发布时间: 2012-06-10 14:03:15 作者: rapoo

递归函数的return
如果用递归调用
return 语句应该是 返回该曾函数的吧 ?而不是返回整个递归函数
我写了一个查找BTS中节点的函数,为什么每次都返回null 晕了

C/C++ code
BiNode* FindBTS(BiTree* r,BiNode* t) //在树中找到t并且返回{    if(r)    {        if (r->data==t->data)        return r;        FindBTS(r->lchild,t);        FindBTS(r->rchild,t);    }    else        return NULL;    }


肯定可以查找到的 我知道这样写 效率不高 但是为什么呢?

[解决办法]
C/C++ code
BiNode* FindBTS(BiTree* r,BiNode* t) //在树中找到t并且返回{    if(r)    {        if (r->data==t->data) //对着没?        return r;        FindBTS(r->lchild,t);        FindBTS(r->rchild,t);    }    else        return NULL;    } 

读书人网 >C++

热点推荐