Man*_*hug 1 java recursion binary-tree
static int sum=0;
public static int size(TreeNode root){
if(root==null)
return sum;
sum++;
sum=size(root.left);
sum=size(root.right);
return sum;
}
Run Code Online (Sandbox Code Playgroud)
我们必须完成函数"size",它计算二叉树中的节点数.我写了上面的代码.对于某些测试用例,它给出了错误的答案.请解释上面的代码有什么问题.
这里:
sum=size(root.left);
sum=size(root.right);
Run Code Online (Sandbox Code Playgroud)
你正在计算两个总和,然后扔掉第一个!
你可以去:return size(root.left)+size(root.right) + 1相反.
这里使用静态字段也没有意义.如果有的话,那应该是该递归方法中的局部变量!分别为:只为null,否则使用我在这里提供的回报.首先没有必要为变量! sumreturn 0sum