zoukankan      html  css  js  c++  java
  • Leetcode(104)-二叉树的最大深度

    给定一个二叉树,找出其最大深度。

    二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

    说明: 叶子节点是指没有子节点的节点。

    示例:
    给定二叉树 [3,9,20,null,null,15,7]

        3
       / 
      9  20
        /  
       15   7

    返回它的最大深度 3 。

    思路:这是个很简单的题目,之所以写一篇总结,是因为在编程中遇到了一点认为值得记录的事情。

    求最大深度,是要从根节点开始,我们很容易想到递归,只要我知道了左子树和右子树的最大深度,再加上1,就是这个二叉树的最大深度。直到递归到最后一层。

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

    程序没什么好说的,重点是我一开始为了使代码看起来简洁,直接将递归函数放到了三目运算符中,导致比较大的数据,运行超过时间限制。个人认为这是因为在一句程序中,就调用了四次函数,所以时间会长。

    所以认为最好不要把递归函数和三目运算符一起使用,单独写出来会好点。

  • 相关阅读:
    前端开发框架
    用C#实现的条形码和二维码编码解码器
    Razor视图语法
    asp.net微软图表控件MsChart
    高并发下的Node.js与负载均衡
    GCC知识
    Mongodb学习(安装篇): 在centos下的安装
    代码评审
    构建一个前端库做一个富客户端的基类
    企业级应用架构(NHibernater+Spring.Net+MVC3+WCF)_3.0
  • 原文地址:https://www.cnblogs.com/mini-coconut/p/9089985.html
Copyright © 2011-2022 走看看