Java 方法对树中的节点进行计数

Java 方法对树中的节点进行计数,java,Java,如果你的方法参数是根节点,我知道如何计算二叉搜索树中的节点,我只是想知道如果方法调用参数不是根节点,是否有方法计算它们 我最初有: public int size(BSTNode cur) { if (cur == null) return 0; return 1 + size(cur.getLeft()) + size(cur.getRight()); } 只有当我在方法调用中使用的节点是根节点时,这才有效,否则它只返回子树中的节点数,而不是整个树 如果您

如果你的方法参数是根节点,我知道如何计算二叉搜索树中的节点,我只是想知道如果方法调用参数不是根节点,是否有方法计算它们

我最初有:

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

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

如果您的树节点有一个指向父节点的链接,您可以一直到根节点(即没有父节点的节点):


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

如果树节点具有指向父节点的链接,则可以一直到达根节点(即没有父节点的节点):


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

如果树节点具有指向父节点的链接,则可以一直到达根节点(即没有父节点的节点):


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

如果树节点具有指向父节点的链接,则可以一直到达根节点(即没有父节点的节点):

否则,任务就不可能完成,因为无法到达树中更高的其他节点

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