bst打印出错

时间:2016-12-11 05:41:55

标签: java nullpointerexception binary-search-tree counter

我应该在二叉树中实现一个用于打印树叶的代码,但是我遇到了一些错误,老实说它们经常发生,所以我很感激地解释如何一劳永逸地解决它们。

 public void printLeaves() { 
 int counter = 1;
 printLeaves(overallRoot,counter); } 
 private void printLeaves(IntTreeNode root ,int counter ) {
//System.out.println(counter);
   if (root.data==0) { } else if(root.left==null&&root.right==null){
   if (counter==1){System.out.print( "leaves: ");}
   counter++;
  System.out.print(root.data+" ");}
  else { printLeaves(root.right,counter); 
          printLeaves(root.left,counter);
   }

我的代码中的错误涉及叶子:打印两次(因为我从来没有得到如何以及在何处实现我的计数器)和空指针异常(因为在实现我的代码时我没有预料到一些概念

1 个答案:

答案 0 :(得分:0)

在代码中

else { printLeaves(root.right,counter); 
      printLeaves(root.left,counter);
}

在调用之前,你不检查root.right和root.left是否为null。