首页 > 其他 > 详细

OJ练习24——T104 Maximum Depth of Binary Tree

时间:2015-04-22 23:50:09      阅读:284      评论:0      收藏:0      [点我收藏+]

求二叉树深度。

【思路】

很简单,二叉树经典。

用递归求左树右树的深度,较大值加1即可。

【other code】

int maxDepth(TreeNode *root) {
        if(root==NULL)
            return 0;
        //if(maxDepth(root->left)>=maxDepth(root->right))
            //return maxDepth(root->left)+1;
        //else
            //return maxDepth(root->right)+1;
        int max1=maxDepth(root->left);
        int max2=maxDepth(root->right);
        return max1>max2?max1+1:max2+1;
        //return max(maxDepth(root->left), maxDepth(root->right))+1;
        //return maxDepth(root->left)>maxDepth(root->right)?maxDepth(root->left)+1:maxDepth(root->right)+1;
    }

【问题】

注释的是我原来的写法,发现要么用int max1 max2分别表示后,再用条件选择return

要么直接用max判断递归调用的最大值,否则就会报“超时”错,一长串。

哦!!!我晓得了!!!

直接用条件选择如:return maxDepth(root->left)>maxDepth(root->right)?maxDepth(root->left)+1:maxDepth(root->right)+1;

其实在判断maxDepth(root->left)>maxDepth(root->right)和后面计算maxDepth(root->left)+1是进行了两次递归!!当然是没有返回的!

原来如此,代码果真不诳我!

OJ练习24——T104 Maximum Depth of Binary Tree

原文:http://www.cnblogs.com/ketchups-notes/p/4448843.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!