查找二叉树中特定节点的深度

时间:2014-02-26 12:36:40

标签: c++ binary-tree

这是我到目前为止的代码,它只是找到了整棵树的深度。如何才能找到一个节点值(项目)的深度?

Template <typename T>
int stree<t>::nodeLevel(const T& item)
{
int depthLeft, depthRight, depthval;

if (t==NULL)
depthval = -1;

else
{
depthLeft = depth(t->left);
depthRight = depth(t->right);
depthval = 1+(depthLeft > depthRight ? DepthLeft : depthRight);
}
return depthval;
}

1 个答案:

答案 0 :(得分:0)

您可以在遍历树时计算深度。如果从深度为0或1的顶部(根节点)开始(取决于您对基数的真实定义),则每次必须向下移动到左或右节点时,增加深度计数,每次移回特定节点父节点时递减。