怎样跳出递归函数,return一个值??
本人初学,写了一个递归函数,目的是从map中查找code,返回该节点的指针node*,(map是一个多叉树型结构)下面就是程序,可是发现每当return 返回时,它是返回到for()循环里的find_node(), 而不是返回主函数
,小弟想不到解决方法,望大家指点,非常感谢
node *find_node(node *cur,int code)
{
map<int, node*>::iterator it;
map<int, node*>::iterator iter;
node *child;
if(cur == NULL)
return NULL;
iter = cur->child_node.find(map<int, node*>::key_type(code));
if(iter == cur->child_node.end())
{
for(it=cur->child_node.begin();it!=cur->child_node.end();it++)
{
child = it->second;
find_node(child,code);
}
}
else
{
child = iter->second;
return child;
}
return NULL;
}