下面给出一个例子:
对于该二叉树而言,叶子节点有C、D两个,C节点的深度为3,D节点的深度为2,那么最浅叶子节点的深度为2。
实现代码如下:
/* 二叉树存储结构定义*/
typedef char TypeData;
typedef struct BiTreeNode
{
TypeData data;
struct BiTreeNode *lchild, *rchild;
}BITREENODE;
/* 求最浅叶子节点的深度 */
int getShallowLeafDepth(BITREENODE* T)
{
int lDepth = 0, rDepth = 0;
if(NULL == T)
{
return 0;
}
else
{
lDepth = getShallowLeafDepth(T->lchild);
rDepth = getShallowLeafDepth(T->rchild);
}
return lDepth < rDepth ? lDepth+1 : rDepth+1;
}