Leetcode 111-二叉树的最小深度

只有当一个节点的左右孩子都为空该节点才为叶节点
这一题不能参考二叉树的最大深度直接比较Math.min(minDepth(root.left),minDepth(root.right)),因为可能左子树为空,右子树不为空,此时root不为叶节点
题解可参考代码随想录

/*
1.如果root为空或左右子树都为空,return
2.如果左子树为空右子树不为空,此时root不是叶节点,应该继续计算root.right的最小子树
3.如果右子树为空左子树不为空,此时root不是叶节点,应该继续计算root.left的最小子树
*/
class Solution {
    public int minDepth(TreeNode root) {
        //边界条件:当前节点为空,记0
        if(root==null) return 0;
        //叶节点
        else if(root.left==null&&root.right==null) return 1;
        //左空右不为空
        else if(root.left==null) return minDepth(root.right)+1;
        //右空左不为空
        else if(root.right==null) return minDepth(root.left)+1;
        //左右均不为空
        else return Math.min(minDepth(root.left),minDepth(root.right))+1;
    }

    
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值