我无法理解为什么我的计数器无法存储正确的值。
当我将计数器保留为通用变量时,此代码有效,但是
如果我在函数中传递“ count”,它将不起作用
public int numberOfLeaves(TreeNode root) {
if(root==null)
return 0;
return leaves(root,0);
}
public int leaves(TreeNode TN,int count){
if(TN.left==null && TN.right==null) {
count++;
}
if(TN.left!=null){
leaves(TN.left,count);
}
if(TN.right!=null){
leaves(TN.right,count);
}
return count;
}
最佳答案
您甚至不需要传递一个count变量。递归为您工作。
您只需要添加左子树的叶数+右子树的叶数:
public int leaves(TreeNode TN) {
if(TN == null)
return 0;
if(TN.left == null && TN.right == null)
return 1;
return leaves(TN.left) + leaves(TN.right);
}
关于java - 我的代码有什么问题? “使用递归计算二叉树的叶子”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57695254/