gpt4 book ai didi

java - 我的代码有什么问题? "Count the Leaves of binary Tree using Recursion"

转载 作者:行者123 更新时间:2023-11-30 12:03:33 25 4
gpt4 key购买 nike

我无法理解为什么我的计数器无法存储正确的值。

当我将计数器作为通用变量时,这段代码有效,但是如果我在函数中传递“计数”,它就不起作用

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;

}

最佳答案

您甚至不需要传递计数变量。递归对你有用。

只需要将左子树的叶子数+右子树的叶子数相加即可:

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 - 我的代码有什么问题? "Count the Leaves of binary Tree using Recursion",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57695254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com