如何编写一个计算某个结点在二叉树中深度的函数
我在网上搜索到的计算某个结点在二叉树中深度的函数:
template<typename T>
int get_node_layer(stnode<T> *node,T value,int L)
{
int i=-1;
if(node)
{
if(node->nodeValue ==value)
return L;
if(i = get_node_layer(node->left,value ,L+1)!=-1) //查左子树,如找到就返回
return i;
if(i = get_node_layer(node->right,value ,L+1)!=-1)//查右子树,如找到就返回
return i;
}
return i;
}
这个函数其运算结果不正确,怎么回事?又该如何修改?请老师指点。谢谢。