Търся да взема някакъв код, който съм написал на Java за клас на двоично дърво и да премахна параметъра за броене от аргументите, но да запазя всичко рекурсивно.
И така, даден клас с тези променливи:
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
count
. - person ooga   schedule 29.10.2014