zoukankan      html  css  js  c++  java
  • 面试题16:递归计算二叉树的最大、最小深度

    用递归方法计算二叉树的最大、最小深度,注意他们之间的区别

    • Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
    • Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
    class Solution {
    public:
    
        int run(TreeNode *root) {
            if(root == nullptr) return 0;
            if(root->left == nullptr) {
                return run(root->right) + 1;
            }
            if(root->right == nullptr){
                return run(root->left) + 1;
            }
            int left = run(root->left);
            int right = run(root->right);
            return min(left,right)+1;
        }
    };
     1 /**
     2  * Definition for binary tree
     3  * struct TreeNode {
     4  *     int val;
     5  *     TreeNode *left;
     6  *     TreeNode *right;
     7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10 class Solution {
    11 public:
    12 
    13     int maxDepth(TreeNode *root) {
    14         int res = 0;
    15         maxDepth(root, res);
    16         return res;
    17     }
    18 
    19     int maxDepth(TreeNode* root, int& depth) {
    20         if(root == nullptr) return 0;
    21 
    22         int left = maxDepth(root->left,depth);
    23         int right = maxDepth(root->right,depth);
    24         int d = max(left,right) + 1;
    25         if(d > depth){
    26             depth = d;
    27         }
    28         return d;
    29     }
    30 };
  • 相关阅读:
    sql_LIKE
    sql_TOP
    oracle_存储过程
    注释@
    request.getAttribute()和request.getParameter()区别
    遍历map
    ORACLE
    JSP
    生成导入模板_设置列宽及标题_解析xml
    解析Excel_Poi
  • 原文地址:https://www.cnblogs.com/wxquare/p/6858791.html
Copyright © 2011-2022 走看看