簡體   English   中英

二叉樹-在沒有count參數的情況下遞歸計算級別上節點數量的方法(Java)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM