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;
        }

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

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

  • 相关阅读:
    使用Powershell开机启动隐藏窗口的程序
    使用鼠标左键事件实现VR中的Eye Gaze Input
    在github网站上更新fork的repo
    零Web知识个性化Blog
    C#中的Attribute
    ConsoleWindow中的双击日志定位
    Hackintosh Issues 10.13.x
    开启macOS的原生写入Ntfs的功能
    Install macOS High Sierra on Any Supported Intel-based PC
    DSDT/SSDT
  • 原文地址:https://www.cnblogs.com/mini-coconut/p/9089985.html
Copyright © 2011-2022 走看看