Leetcode:minimum_depth_of_binary_tree解决问题的方法

一、     称号

并寻求最深的二元相似。给定的二进制树。求其最小深度。

最小深度是沿从根节点,到叶节点最短的路径。

二、     分析

当我看到这个题目时。我直接将最深二叉树的代码略微改了下,把max改成min。本以为应该没有问题,谁知道WA了两次,我静下来看了看。最终知道了,当遇到有结点为NULL时就得要结束了。所下面次再简单的题目也要静下来好好分析,不然会easy出错。

/**
 * Definition for binary tree
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    int minDepth(TreeNode *root) {
        if(root==NULL)
        	return 0;
        int mleft=minDepth(root->left);
        int mright=minDepth(root->right);
        if(mleft==0)
           return 1+mright;
        else if(mright==0)
           return 1+mleft;
        else return min(mleft,mright)+1;
    }
};

二、

 * Definition for binary tree
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */

class Solution {
public:
    int minDepth(TreeNode *root) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        return minRec(root);
    }

    int minRec( TreeNode * root) {
        if(!root) return 0;

        int left = minRec( root->left);
        int right = minRec( root->right);

        if(left && right) return 1 + min(left, right);
        if(left || right) return 1+left+right;
        return 1;
    }
};
三、

/**
 * Definition for binary tree
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    public int minDepth(TreeNode root) {
        // Start typing your Java solution below
        // DO NOT write main() function

        return minRec(root);
    }

    private int minRec(TreeNode root) {
        if(root==null) return 0;

        int l = minRec(root.left);
        int r = minRec(root.right);

        if(l==0) return r+1;
        if(r==0) return l+1;

        return Math.min(l, r) + 1;

    }
}

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-10-05 16:08:09

Leetcode:minimum_depth_of_binary_tree解决问题的方法的相关文章

《成为技术领导者-掌握全面解决问题的方法》读后感

<成为技术领导者-掌握全面解决问题的方法>的作者是美国作家Gerald M.Weinberg,译者余晟. 我花了大约一周的时间将本书阅读完成的,购买本书的也是一个很巧合的,因为看到书名包含了技术(联想到了编程技术,因为作者从事过软件开发),且浏览了目录像是有技巧性的知识包含其中,于是就购买了,结果阅读的过程当中,我才发现本书跟编程技术.技巧没有多少关系,而副标题才是准确表达本书的核心,全书分为定义.创新.激励.组织.转变五个部分,详细入微的讨论了一个技术领导要解决问题的各种方法,让你看到,技术

leetcode解决问题的方法||Integer to Roman问题

problem: Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999. 将1-3999的整数转换为罗马数字 thinking: (1) 对比举例 个位数举例 Ⅰ,1 ]Ⅱ.2] Ⅲ,3] Ⅳ,4 ]Ⅴ.5 ]Ⅵ,6]Ⅶ.7] Ⅷ,8 ]Ⅸ.9 ] 十位数举例 Ⅹ.10] Ⅺ,11 ]Ⅻ,12] XIII,13] XIV,14] XV,1

1月31日 解决问题的方法( 麦肯锡七步成诗法 )

第一步:问题描述  1 明确企业要解决的基本问题  2 具体的.有内容的描述问题  3 清楚列示问题涉及的各方面信息 第二步:问题的分解 1 为何要进行分解  a 分解是提出假设的基础          提出假设          搜集资料          分析论证假设          完成咨询报告  b 理清思路         分解区分         设置优先顺序 2 问题分解的原则  a 内容是不是全面充分?  b 分解后的要素是不是相互独立? 3 问题分解的方法  a 不断提出假设

Hostspace组织培训活动——解决问题,方法先行

在日常工作中,大部分工作内容都是在"解决问题",解决问题是一个不断摆事实,找原因,提方案的过程.简单的问题依靠直线思维和经验判断就可解决,但碰上复杂问题时,常常由于主观认知先入为主或思考问题时缺少合理假设等原因导致头脑发热,被一些问题表面现象所迷惑,抓不住主要原因和问题本质.导致复杂问题简单化,想要考虑全面,却往往适得其反.总结起来,是我们在工作中缺少一套科学的分析与解决问题体系.完整的解决问题框架. 为了对公司成员解决问题的能力进行系统化的训练和提升,更好地履行各自的岗位职责,提高产

解决问题的方法

写一个帖子,出现问题,然后通过日志找到问题,最后解决问题的路径 问题:把mysql目录下的二进制日志删除了,发现mysql死活提不起来 解决: 第一步查看日志 tail -100 /var/lib/mysql/localhost.localdomain.err 发现没有一个文件,因为mysql每次都是读取bin.index文件的序列号,那么我把bin.index删除,然后启动mysql,看他是否创建最新的bin.index和binlog日志文件

解决问题的方法--站在巨人肩膀上思考1

项目中使用js进行数据前台的显示,遇到一个问题和解决方法,对解决方法进行思考.      后台传数据给js,js负责把得到的数据放到img标签的title中,这时问题出现了,后台的数据又特殊字符&XXXX;("·"),这样在title中显示的时候就成为了的字符了. 1.于是就开始搜索怎么使用js把&XXXX;转换为"·",找了很多文章写的都不是很好,写了自己一套的js转义函数进行转义,这个问题没有这么复杂. 2.开始思考jquery有什么好的方法,没

偶尔,当拍摄从相册或图片相机拍摄照片黑色解决问题的方法,解决问题和头部转动的方法

我尝试了很多方法,在线.无解! 其目的是相同的,它是基于图像的方向orientation 对于旋转相应的角度,达到我们想要的效果.! 的条形码直接观看,我曾是imagePickerController要获取的图片 #pragma mark - UIImagePickerControllerDelegate methods //当选择一张图片后进入这里 -(void)imagePickerController:(UIImagePickerController *)picker didFinishP

DB2 sql报错后查证原因与解决问题的方法

1.对于执行中的报错,可以在db2命令行下运行命令 : db2=>? SQLxxx 查看对应的报错原因及解决方法. 2.错误SQL0206N SQLSTATE=42703  检测到一个未定义的列.属性或参数名.  SQL0206N  "SQL_COU_ALL" is not valid in the context where it is used.  SQLSTATE=42703      db2 => ? "42703"          db2 =

[LeetCode] Decode Ways 解码方法

A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 Given an encoded message containing digits, determine the total number of ways to decode it. For example,Given encoded