递归函数的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; }