【发布时间】:2011-03-21 17:58:12
【问题描述】:
我应该实现一个计算左子树节点数量的递归方法。到目前为止我的代码是:
private int countLeftNodes(IntTreeNode node){
int c = 0;
if (node != null){
c = 1 + countLeftNodes(node.left);
countLeftNodes(node.right);
}
return c;
}
它返回的数字远小于应有的数字。我感觉我的遍历已经关闭,因为它似乎只计算最左边的子节点,然后终止。当我在大小为 16 的 IntTree 上调用此方法时,我应该得到 8 个左子节点、7 个右子节点和一个根,但我得到了 4 个左子节点。
【问题讨论】:
-
你没有添加右孩子的左节点。
标签: java data-structures tree nodes