【发布时间】:2010-12-25 19:47:50
【问题描述】:
考虑以下代码:
public int heightOfBinaryTree(Node node)
{
if (node == null)
{
return 0;
}
else
{
return 1 +
Math.max(heightOfBinaryTree(node.left),
heightOfBinaryTree(node.right));
}
}
我想知道这段代码背后的逻辑推理。人们是怎么想出来的?有些人有归纳证明吗?
此外,我想只用二叉树的根作为参数进行 BFS 以获得二叉树的高度。以前的方法比我的好吗?为什么?
【问题讨论】:
-
在 null 情况下不需要将 0 更改为 -1