码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-04-22 23:53:08      阅读:165      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!