【发布时间】:2014-12-24 14:23:59
【问题描述】:
我正在寻找一些我用 Java 编写的用于二叉树类的代码,并从参数中删除 count 参数,但保持整个事情是递归的。
所以,给定一个具有这些变量的类:
public class BinaryTree<E> {
protected E data;
protected BinaryTree<E> left,right;
我怎么能这样做:
public int levelCount(int count, int level){
if (data == null) {return 0;}
if (count == level) {return 1;}
else {
return this.getRight().levelCount(count+1,level) + this.getLeft().levelCount(count+1,level);
}
}
这应该(并且确实)返回二叉树任何给定级别的节点数。
所以有一棵树“thatTree”看起来像:
2
/ \
6 3
/ \ / \
4 5 7 10
thatTree.levelCount(0) 返回 1,thatTree.levelCount(1) 返回 2,thatTree.levelCount(2) 返回 4
【问题讨论】:
-
任何特定的语言?
-
请注意,这不是提供“一般评论”的网站。
-
请举例说明如何调用它以及它会返回什么;不清楚您要在这里计算什么。
-
@ScottHunter 这个问题基本上与语言无关,他显然试图计算树中特定深度处存在多少节点。实际上,他已经这样做了,但正在询问是否可以在没有
count参数的情况下完成。 -
@ooga:如果您希望有人编写代码,那么您至少可以指定语言。如果你解释你想要做什么,谁知道呢,你可能会解决你自己的问题。
标签: java recursion binary-tree