力扣 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;
    }
}
相关推荐
清流君21 分钟前
【运动规划】移动机器人运动规划与轨迹优化全解析 | 经典算法总结
人工智能·笔记·算法·机器人·自动驾驶·运动规划
wang_changyue22 分钟前
CSP-X2024解题报告(T3)
数据结构·算法·leetcode
因特麦克斯22 分钟前
每日一题&移动语义
算法
vir0227 分钟前
木材加工(二分查找)
数据结构·c++·算法
Tisfy4 小时前
LeetCode 3240.最少翻转次数使二进制矩阵回文 II:分类讨论
算法·leetcode·矩阵·题解·回文·分类讨论
橘子遇见BUG5 小时前
算法日记 31 day 动态规划(01背包)
算法·动态规划
东方巴黎~Sunsiny5 小时前
java-图算法
java·开发语言·算法
ac-er88885 小时前
PHP二维数组排序算法函数
算法·php·排序算法
Tisfy6 小时前
LeetCode 3244.新增道路查询后的最短距离 II:贪心(跃迁合并)-9行py(O(n))
算法·leetcode·题解·贪心·思维
DdddJMs__1356 小时前
C语言 | Leetcode C语言题解之第564题寻找最近的回文数
c语言·leetcode·题解