即使对于具有单个节点的树,此代码也会出现堆栈溢出错误。
int size(Node node)
{
if(root==null)
return 0;
return (1+size(root.left)+size(root.right));
}
答案 0 :(得分:4)
因为你总是在你的函数中使用root
,它似乎是该类的一个属性,所以你一次又一次地在同一个元素上调用该函数
int size(Node node){
if(node==null){
return 0;
}
return (1 + size(node.left) + size(node.right));
}
将解决;)
因此您将调用此方法:
int s = size(root);