计算树中节点的方法

时间:2014-08-06 02:44:32

标签: java

我理解如果你的方法参数是根节点,如何计算二进制搜索树中的节点,我只是想知道如果方法调用参数是其他节点,是否有计算它们的方法比根?

我最初有:

public int size(BSTNode cur)
{
    if (cur == null)
        return 0;
    return 1 + size(cur.getLeft()) + size(cur.getRight());  
}

这仅在我在方法调用中使用的节点是root用户时才有效,否则它只返回子树中的节点数,而不是整个树。

1 个答案:

答案 0 :(得分:3)

如果你的树节点有一个父节点的链接,你可以一直上升到根节点(即没有父节点的节点):

TreeNode node = ...
while (node.parent != null) {
    node = node.parent; // Go up the tree
}
// Now you are at the root, so you can count all nodes

否则,该任务是不可能的,因为无法到达树中较高的其他节点。