刷题专栏(九):二叉树的最小深度

简介: 刷题专栏(九):二叉树的最小深度

前言

今天我们还是来看关于数据结构二叉树的题目,充分的了解二叉树。

《二叉树的最小深度》这道题的难度级别属于简单级别,也就是基本的操作类型的题目。

image.png

算法题:二叉树的最小深度

从题目的描述来看,我们可以获取每一个节点不为空的路径,直到当前节点的左右子节点都为空时,才算得上是终止,此时获得的深度层数和其他分支的比较后,得到最小的一个值,就是我们最后要的结果值。

在解题的过程中,还要考虑两个特殊的情况。

第一,判断该节点是否为空,如果为空的话,自然也就是0了。

第二,判断两个子节点是否都为空,如果都为空的情况,那也就不用继续下去了,因为当前节点就是最底层的了。

代码展示

本次代码使用的是递归方式不断递归到最后一个符合要求的节点,并且得出最小的终止层数。

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public int minDepth(TreeNode root) {
        //为空为0
        if (root == null) {
            return 0;
        }
        //有一侧为空直接输出1
        if (root.left == null && root.right == null) {
            return 1;
        }
        int z = 10001;
        if (root.left != null) {
            z = Math.min(minDepth(root.left), z);
        }
        if (root.right != null) {
            z = Math.min(minDepth(root.right), z);
        }
        return z + 1;
    }
}

执行结果:

第一次理解错了题目,失败了一次。

很不理想,但是这和官方题解思路是一样的,只能说更多的牛人在前面。

image.png

总结

跟我一起说,遇到处理二叉树,那就是用递归最好了,欢迎大家关注我的刷题专栏。

目录
相关文章
|
10月前
|
安全 Java 程序员
菜鸟之路Day11-12一一集合进阶(四)
### 菜鸟之路 Day11-12:集合进阶(四) 作者:blue 时间:2025.1.29-1.30 本文详细介绍了Java集合的高级用法,包括可变参数、Collections工具类、综合练习、不可变集合和Stream流。通过具体代码示例,讲解了可变参数的使用规则、Collections常用API、随机点名练习、不可变集合的创建方法以及Stream流的操作步骤。内容丰富实用,适合初学者深入理解Java集合框架。
172 18
|
网络安全 Nacos
Nacos客户端配置错误检查
Nacos客户端配置错误检查
676 3
|
消息中间件 运维 Serverless
函数计算产品使用问题之如何判断从函数调用获取到的事件是由哪个触发器发出的
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
设计模式
设计模式小例子理解封装、继承、多态
设计模式小例子理解封装、继承、多态
216 0
|
消息中间件 中间件 数据库
RocketMQ 事务消息初体验
事务消息是 RocketMQ 的高级特性之一 。这篇文章,笔者会从应用场景、功能原理、实战例子三个模块慢慢为你揭开事务消息的神秘面纱。
|
NoSQL Redis
深入了解Redis持久化与备份策略
本篇深入介绍了Redis的持久化和备份机制,为读者提供了全面的了解和实际操作示例。我们首先探讨了RDB持久化方式,通过将数据集的快照保存到磁盘文件,实现了数据的定期备份和恢复。接着,详细介绍了AOF持久化,将每个写操作记录到日志文件中,确保了数据的持久性和安全性。我们还讨论了混合持久化,将RDB和AOF结合,兼顾了快速恢复和持久化的需求。
852 0
|
存储 关系型数据库 uml
00003.七大软件架构设计原则
00003.七大软件架构设计原则
163 0
|
小程序 容器
小程序中的权限设计
小程序中的权限设计
小程序中的权限设计
|
存储 Go
GO语言-08通过例子了解接口、空接口、嵌套结构体
自己学习Go语言学习过程中的记录与总结,希望对你能有帮助。 第八篇:通过例子学习Go语言的接口、空接口,嵌套结构体
286 0
|
弹性计算 小程序 开发者
Student:T8M2 Tammy
在第一次使用时,平台还提供了教程,只需要用心花点时间完成其中的场景实践和技能自测就可以啦。并且每一步都有很详细的教程,包括如何体验ECS云服务器的新手场景以及了解其中的概念和基础操作。对于我这种之前没使用过云服务器的人来说真的非常友好。