• 面试题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 };
  • 相关阅读:
    java如何编写多线程
    Java调用dll动态库
    HashMap源码解析
    LinkedList源码解析
    ArrayList源码解析
    springboot配置cxf
    java生成二维码
    原生js--跨域消息传递
    原生js--应用程序存储和离线web应用
    原生js--userData
  • 原文地址:https://www.cnblogs.com/wxquare/p/6858791.html
Copyright © 2020-2023  润新知