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); 
    
    }
  • 相关阅读:
    BZOJ3992 [SDOI2015]序列统计
    BZOJ3991 [SDOI2015]寻宝游戏
    BZOJ4007 [JLOI2015]战争调度
    BZOJ4006 [JLOI2015]管道连接
    BZOJ4004 [JLOI2015]装备购买
    P2567 [SCOI2010]幸运数字
    P1447 [NOI2010]能量采集
    比赛-Round 2 (11 Jul)
    题解-弹飞绵羊 (HNOI2015)
    归并排序模板
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7088144.html
Copyright © 2011-2022 走看看