zoukankan      html  css  js  c++  java
  • [Leetcode]-Minimum Depth of Binary Tree

    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.

    Hide Tags :Tree , Depth-first Search
    题目:求取二叉树中最小深度,根节点定义为1深度。


    思路:相同採取递归
    递归终止条件:
         A:假设root为NULL。说明已经越界,返回深度0
    推断节点走向:
         A:假设root为树叶, if(root->left == NULL && root->right == NULL) 返回深度1
         B:假设节点无左节点,即if(root->left == NULL ) ,则运行递归return minDepth(root->right) + 1;
         C:假设节点无右节点,则return minDepth(root->left ) + 1;
    递归主进程:
    int l = minDepth(root->left) + 1 ;
    int r = minDepth(root->right)+ 1 ;
    最后在推断l与r的大小,返回小者return min(l,r);

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     struct TreeNode *left;
     *     struct TreeNode *right;
     * };
     */
    #define min(a,b) (((a)<(b))?(a):(b))
    int minDepth(struct TreeNode* root) {
    
        if(root == NULL)                                return 0;
        if(root->left == NULL && root->right == NULL)   return 1;
        else if(root->left == NULL )                    return minDepth(root->right) + 1;
        else if(root->right== NULL )                    return minDepth(root->left ) + 1;
        int l = minDepth(root->left) + 1 ;
        int r = minDepth(root->right)+ 1 ;
        return min(l,r); 
    
    }
  • 相关阅读:
    文件上传和多线程通信
    黏包
    socket通信
    osi七层协议
    面向对象的反射和双下方法
    类的成员和异常处理
    python面向对象类的约束和设计的统一化规范
    单继承和多继承
    对象
    Python-----带参数的装饰器以及补充
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7088144.html
Copyright © 2011-2022 走看看