有东西吃进我的脑子里:下面这棵树的深度怎么可能
b
/ \
a c
be 3
,在被引用最多的算法之后(这里是Java):
int depth(Node n)
{
if(n == null)
{
return 0;
}
int lDepth = depth(n.left);
int rDepth = depth(n.right);
return 1 + ((lDepth > rDepth) ? lDepth : rDepth);
}
当只有一个(根)节点的树的深度0
根据维基百科和我的许多其他来源定义为最深节点的路径长度时?显然,只有一个节点的树到最深节点的路径长度为0
,而上述算法永远不会产生小于 的任何值1
。
是具有单个根节点的树的深度0
还是它1
?如果是,0
那么上面的算法就是错误的,因为它会产生1
.
我从没想过这样一件微不足道的事情会在我身上发生翻天覆地的变化。