二叉树-在没有计数参数的情况下递归计算一个级别上的节点数的方法(Java)

二叉树-在没有计数参数的情况下递归计算一个级别上的节点数的方法(Java),java,recursion,binary-tree,Java,Recursion,Binary Tree,我正在寻找一些我用Java为二叉树类编写的代码,并从参数中删除count参数,但保持整个过程是递归的 因此,给定一个包含以下变量的类: public class BinaryTree<E> { protected E data; protected BinaryTree<E> left,right; 这应该(并且确实)返回二叉树任意给定级别的节点数 所以有一棵树“thatTree”看起来像: 2 / \ 6 3 / \

我正在寻找一些我用Java为二叉树类编写的代码,并从参数中删除count参数,但保持整个过程是递归的

因此,给定一个包含以下变量的类:

 public class BinaryTree<E> {

  protected E data;
  protected BinaryTree<E> left,right;
这应该(并且确实)返回二叉树任意给定级别的节点数

所以有一棵树“thatTree”看起来像:

     2
   /    \
  6      3
 / \    / \
4   5  7   10 

thatTree.levelCount(0)返回1,thatTree.levelCount(1)返回2,thatTree.levelCount(2)返回4

为什么不传递一个参数,在每个递归中减去1,并在它为0时结束?比如:

public int levelCount(int level){
  if (data == null || level < 1) {return 0;}
  if (level == 1) {return 1;}
  else {
    return this.getRight().levelCount(level-1) + this.getLeft().levelCount(level-1);
  } 
}
public int-levelCount(int-level){
如果(data==null | | level<1){返回0;}
如果(level==1){return 1;}
否则{
返回this.getRight().levelCount(level-1)+this.getLeft().levelCount(level-1);
} 
}

任何特定语言?请注意,这不是一个提供“一般评论”的网站。请举例说明如何称呼它&它会返回什么;现在还不清楚你想计算什么。@ScottHunter这个问题基本上是语言不可知的,他显然是在计算树中特定深度上存在多少节点。事实上,他已经这样做了,但是他在问,如果不使用
count
参数,是否可以这样做。@ooga:如果您希望有人编写代码,至少可以指定语言。如果你解释你想做什么,谁知道呢,你可能只是解决了你自己的问题。
public int levelCount(int level){
  if (data == null || level < 1) {return 0;}
  if (level == 1) {return 1;}
  else {
    return this.getRight().levelCount(level-1) + this.getLeft().levelCount(level-1);
  } 
}