重复计算二叉树

时间:2015-06-15 18:57:52

标签: java recursion binary-tree nodes

因此,我的编码练习被赋予对其子节点的节点计数的引用。 我决定使用递归,我想知道这是一种优雅的方式来做到这一点:

假设有一个类Node表示树中的每个节点:

public Node {
  int data:
  Node left;
  Node right;
}


int countChildren(Node head) {
    if(head==null) return 0;
    return countChildren(head.left)+countChildren(head.right)+ 
            ((head.left==null)?0:1) + ((head.right==null)?0:1);
}

我很欣赏每一个建议。

1 个答案:

答案 0 :(得分:2)

public Node {
  int data:
  Node left;
  Node right;
}


int countChildren(Node head) {
    if(head==null) return 0;
    return ((head.left == null) ? 0 : countChildren(head.left) + 1) + ((head.right == null) ? 0 : countChildren(head.right) + 1);
}

这是我的建议。