[英]Binary Tree - Method to recursively count the number of nodes on a level without a count parameter (Java)
我希望拿一些用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,那個Tree.levelCount(1)返回2,那個Tree.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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.