力扣 LeetCode 111. 二叉树的最小深度(Day7:二叉树)

解题思路:

用后序遍历

题目要求的最小深度为根节点到叶子节点的最小深度,注意是到根节点,所以如图所示假设(没有9这个节点)是需要返回3的,而不是1(根节点左子树为空的情况),于是需要加两层判断

其余部分可参考求最大深度的思路,有一定相似之处

java 复制代码
class Solution {
    public int minDepth(TreeNode root) {
        if (root == null) return 0;
        
        int leftDepth = minDepth(root.left);
        int rightDepth = minDepth(root.right);
        if (root.left == null && root.right != null) return 1 + rightDepth;
        if (root.left != null && root.right == null) return 1 + leftDepth;
        int res = 1 + Math.min(leftDepth, rightDepth);
        return res;
    }
}
相关推荐
liang_202613 分钟前
【HT周赛】T3.二维平面 题解(分块:矩形chkmax,求矩形和)
数据结构·笔记·学习·算法·平面·总结
緈福的街口15 分钟前
【leetcode】2900. 最长相邻不相等子序列 I
算法·leetcode·职场和发展
易只轻松熊16 分钟前
C++(20): 文件输入输出库 —— <fstream>
开发语言·c++·算法
远瞻。36 分钟前
【论文阅读】人脸修复(face restoration ) 不同先验代表算法整理
论文阅读·算法
进击的小白菜42 分钟前
LeetCode 153. 寻找旋转排序数组中的最小值:二分查找法详解及高频疑问解析
数据结构·算法·leetcode
dog2501 小时前
BBR 的 buffer 动力学观感
人工智能·算法
士别三日&&当刮目相看1 小时前
数据结构*优先级队列(堆)
java·数据结构
QQ_4376643142 小时前
单向循环链表C语言实现实现(全)
数据结构·windows·链表
ptu小鹏2 小时前
list重点接口及模拟实现
数据结构·c++·list
冲帕Chompa4 小时前
图论part10 bellman_ford算法
数据结构·算法·图论