【发布时间】:2015-12-14 13:56:19
【问题描述】:
我正试图弄清楚如何为学校项目获得三元树的最大高度。对于二叉树,使用Math.max() 很容易,但我一直在努力解决如何对三个孩子做同样的事情。以下是我到目前为止所拥有的,但我还没有到可以编译的地步,我不确定我的逻辑是否合理。这行得通吗?将左/右子比较放入临时变量会更好吗?
private int getHeight(TernaryNode<T> node) {
int height = 0;
if (node != null) {
height = Math.max(getHeight(node.getLeftChild()), getHeight(node.getRightChild()));
height = 1 + Math.max(height, getHeight(node.getMidChild()));
}
return height;
【问题讨论】:
-
试试看是否有效
-
是的,它应该给你正确的结果。但我不确定是否有任何其他版本会“更好”。