【问题标题】:why this recursive function for size of binary tree gives stack overflow error?为什么这个二叉树大小的递归函数会产生堆栈溢出错误?
【发布时间】:2017-07-23 14:40:55
【问题描述】:

即使对于具有单个节点的树,此代码也会出现堆栈溢出错误。

int size(Node node)
    {
        if(root==null)
            return 0;
        return (1+size(root.left)+size(root.right));
    }

【问题讨论】:

    标签: java tree


    【解决方案1】:

    因为你总是在你的函数中使用root,它似乎是类的一个属性,所以你一次又一次地在同一个元素上调用函数

    int size(Node node){
        if(node==null){
            return 0;
        }
        return (1 + size(node.left) + size(node.right));
    }
    

    会解决的;)


    所以你会这样调用方法: int s = size(root);

    【讨论】:

      猜你喜欢
      • 2019-08-25
      • 2014-07-04
      • 1970-01-01
      • 2021-04-19
      • 1970-01-01
      • 2014-12-07
      • 2015-06-17
      • 1970-01-01
      • 2018-10-28
      相关资源
      最近更新 更多