用于获取二叉树中元素出现次数的递归方法

时间:2016-10-31 06:40:59

标签: recursion tree binary-search-tree

photo of my non-recursive code

您好。我在以recursuve格式编写此方法(在照片中)时遇到问题。该方法获得二叉搜索树中给定元素的出现量。 为了递归地解决这个问题,我试图用一个同名的私有帮助器方法实现它,如下所示:

public int count(){
count = 0;
if (root == null)
    return count;
return count (root.getInfo());

private int count(T element){
(Basically the same code you see in the photo)
}

但我最终出现了溢出错误。您是否介意看一看并告诉我如何以递归方式构造此方法?

干杯,谢谢。

1 个答案:

答案 0 :(得分:1)

暂定实施可能如下所示。

public int count(T element, T root){
   if(element == null) {
      return 0;
   }
   int count = 0;
   int compare = element.compareTo(root.getInfo());
   if(compare == 0){
      count++;
   }
   count += count(element, root.getLeft());
   count += count(element, root.getRight());
   return count;
}

count(item, root);