【发布时间】:2017-07-23 14:40:55
【问题描述】:
即使对于具有单个节点的树,此代码也会出现堆栈溢出错误。
int size(Node node)
{
if(root==null)
return 0;
return (1+size(root.left)+size(root.right));
}
【问题讨论】:
即使对于具有单个节点的树,此代码也会出现堆栈溢出错误。
int size(Node node)
{
if(root==null)
return 0;
return (1+size(root.left)+size(root.right));
}
【问题讨论】:
因为你总是在你的函数中使用root,它似乎是类的一个属性,所以你一次又一次地在同一个元素上调用函数
int size(Node node){
if(node==null){
return 0;
}
return (1 + size(node.left) + size(node.right));
}
会解决的;)
所以你会这样调用方法:
int s = size(root);
【讨论】: