Leetcode111. 二叉树的最小深度(dfs)

Posted !0 !

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode111. 二叉树的最小深度(dfs)相关的知识,希望对你有一定的参考价值。

题目链接:https://leetcode-cn.com/problems/minimum-depth-of-binary-tree/

解题思路

我们可以来利用深搜,遍历整棵树,然后记录最小深度。对于每一个非叶子节点,我们只需要分别计算其左右子树的最小叶子节点深度。这样就将一个大问题转化为了小问题,可以递归地解决该问题。

代码

class Solution {
    public int minDepth(TreeNode root) {
        if (root == null) //根节点为空,返回0
            return 0;
        if (root.left == null && root.right == null)//左右子树都为空,代表找到了一个子树的深度 
            return 1;
        int ans = Integer.MAX_VALUE;    //记录答案
        if (root.left != null)  //如果左子树不为空,则递归左子树最小深度
            ans = Math.min(minDepth(root.left), ans);
        if (root.right != null) //如果右子树不为空,则递归右子树最小深度
            ans = Math.min(minDepth(root.right), ans);
        return ans + 1; 
    }
}

复杂度分析

  • 时间复杂度:O(n)
  • 空间复杂度:O(H),二叉树的高度

以上是关于Leetcode111. 二叉树的最小深度(dfs)的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode] #111 二叉树的最小深度

LeetCode-111-二叉树的最小深度

111. 二叉树的最小深度简单树DFS

111. 二叉树的最小深度简单树DFS

LeetCode Java刷题笔记—111. 二叉树的最小深度

leetcode 111. 二叉树的最小深度