原题链接

思路:

递归计算每个子树的深度,返回左右子树中深度小的值;

由于题目中要求的是到最近叶子节点的深度,所以需要判断 左右子树为空的情况;

python/python3:

class Solution(object):
def minDepth(self, root):
"""
:type root: TreeNode
:rtype: int
"""
if root:
if not root.left and root.right:
return 1 + self.minDepth(root.right)
elif not root.right and root.left:
return 1 + self.minDepth(root.left)
else:
return min(self.minDepth(root.left), self.minDepth(root.right)) + 1
else:
return 0

C++:

class Solution {
public:
int minDepth(TreeNode* root) {
if(root == NULL){
return 0;
}
else{
if(root->left == NULL && root->right != NULL){
return 1 + minDepth(root->right);
}
else if(root->right == NULL && root->left != NULL){
return 1 + minDepth(root->left);
}
else{
return min(minDepth(root->left), minDepth(root->right)) + 1;
}
}
}
};

LeetCode 之 111. 二叉树的最小深度的更多相关文章

  1. 【LeetCode】111. 二叉树的最小深度

    111. 二叉树的最小深度 知识点:二叉树,递归 题目描述 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明:叶子节点是指没有子节点的节点. 示例 输入 ...

  2. LeetCode【111. 二叉树的最小深度】

    最小深度,看起来很简单,就是左右节点的深度最小值 定义一个函数,计算其深度 class Solution { public int minDepth(TreeNode root) { if(root ...

  3. Java实现 LeetCode 111 二叉树的最小深度

    111. 二叉树的最小深度 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,nu ...

  4. leetcode 111. 二叉树的最小深度

    题目描述: 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,null,null, ...

  5. [LeetCode 111] - 二叉树的最小深度 (Minimum Depth of Binary Tree)

    问题 给出一棵二叉树,找出它的最小深度. 最小深度是指从根节点沿着最短路径下降到最近的叶子节点所经过的节点数. 初始思路 不难看出又是一个需要层次遍历二叉树的题目,只要在112基础上作出简单修改即可得 ...

  6. 每日一题-——LeetCode(111)二叉树的最小深度

    题目描述: 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 思路一: 把每一层的结点加入到队列,每一层i+1,到下一层时,把上一层在队列中的结点都弹出,按从 ...

  7. leetcode 111二叉树的最小深度

    使用深度优先搜索:时间复杂度O(n),空间复杂度O(logn) /** * Definition for a binary tree node. * struct TreeNode { * int v ...

  8. Leecode刷题之旅-C语言/python-111二叉树的最小深度

    /* * @lc app=leetcode.cn id=111 lang=c * * [111] 二叉树的最小深度 * * https://leetcode-cn.com/problems/minim ...

  9. [LeetCode] Minimum Depth of Binary Tree 二叉树的最小深度

    Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor ...

  10. LeetCode 二叉树的最小深度

    计算二叉树的最小深度.最小深度定义为从root到叶子节点的最小路径. public class Solution { public int run(TreeNode root) { if(root = ...

随机推荐

  1. 从零搭建hadoop集群之安装jdk

    卸载系统自带的OpenJDK以及相关的java文件 1. 查询系统自带的OpenJDK版本信息 [root@hadoop01 ~]# java -version #查询系统自带的OpenJDK版本信息 ...

  2. git将本地文件上传到远程仓库

    要记住! 上传代码之前,一定要先下拉代码,如果有冲突(你和别人同时修改了某一个文件的某一行代码),那么就要先解决冲突,才能提交! 这里以将自己的本地文件上传至git仓库为例 1.首先进入需要上传的文件 ...

  3. corkscrew在ssh中发生错误

    使用绝对路径 ProxyCommand="corkscrew 127.0.0.1 12345 jump.123.com 2020" abc@efg.com 改为 ProxyComm ...

  4. 《Django 3 Web应用开发从零开始学(视频教学版)》源码课件教学视频免费下载

    #好书推荐##好书奇遇季#<Django 3 Web应用开发从零开始学(视频教学版)>,配书资源文后提供了下载二维码.京东当当天猫都有发售. https://item.jd.com/133 ...

  5. python checklist

    1. 常用模块:subprocess, requests, paramekio, traceback, argparse, numpy, pandas 2. 赋值传递和引用传递 python是赋值传递 ...

  6. 工程师突击:SAP ABAP实用程序开发攻略.pdf

    工程师突击:SAP ABAP实用程序开发攻略.pdf 有需要的联系 wx :erpworld

  7. HDLbits——Mt2015 lfsr

    1.描述电路图里面的一个子模块 Assume that you want to implement hierarchical Verilog code for this circuit, using ...

  8. 怎么理解超几何分布概率公式:p=C(M,k)C(N-M,n-k)/C(N,n)

    怎么理解超几何分布概率公式:p=C(M,k)C(N-M,n-k)/C(N,n) 前言:重在记录,可能出错. 超几何分布概率公式:p=C(M,k)C(N-M,n-k)/C(N,n),也就是: 到底要怎么 ...

  9. moment.js相关知识总结

    参考连接:https://www.jianshu.com/p/9c10543420de 1,ant-design-vue控件当中的日期控件 <a-date-picker @change=&quo ...

  10. Http方式发送Soap报文调用WebService

    WebService的实现方式之一就是基于HTTP发送SOAP报文进行调用. 可能由于各种原因,我们不能使用CXF.AXIS等框架调用,此时的解决方案之一就是直接基于HTTP发送SOAP报文,然后将响 ...