我应该在二叉树中实现一个用于打印树叶的代码,但是我遇到了一些错误,老实说它们经常发生,所以我很感激地解释如何一劳永逸地解决它们。
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);
}
我的代码中的错误涉及叶子:打印两次(因为我从来没有得到如何以及在何处实现我的计数器)和空指针异常(因为在实现我的代码时我没有预料到一些概念
答案 0 :(得分:0)
在代码中
else { printLeaves(root.right,counter);
printLeaves(root.left,counter);
}
在调用之前,你不检查root.right和root.left是否为null。