详解如何获取二叉树的最大深度和最小深度

 时间:2024-10-21 16:08:25

本篇经验将分享一道常见的算法笔试题:如何获取一棵二叉树的最大深度和最小深度,最大深度定义:根节点到叶子节点最长路径中的节点数;最小深度定义:根节点到叶子节点最短路径中的节点数。

详解如何获取二叉树的最大深度和最小深度

工具/原料

JDK1.8

Eclipse

方法/步骤

1、创建一个表示二叉树节点的静态内部类,图示,通过该类对象可以构建一棵二叉树结构。

详解如何获取二叉树的最大深度和最小深度

2、实现算法,通过递归调用,获取二叉树最大深度:1.如果当前二叉板曰剔囡树节点为空,则直接返回0;2.通过稣匚邸腼递归调用,分别获取当前节点左右子树的最大深度;3.左右子树最大深度的较大值加1,即二叉树的最大深度。

详解如何获取二叉树的最大深度和最小深度

3、实现算法,通过递归调用,获取二叉树最小深度:1.如果当前二叉板曰剔囡树节点为空,则直接返回0;2.通过稣匚邸腼递归调用,分别获取当前节点左右子树的最小深度;3.如果当前节点的左子树为空,则其最小深度就是右子树最小深度加1;4.如果当前节点的右子树为空,则其最小深度就是左子树最小深度加1;5.如果左右子树都不为空,则其最小深度为左右子树最小深度的较小值加1;

详解如何获取二叉树的最大深度和最小深度

4、编写本地测试主方法,图示,构建一棵二叉树,分别获取其最大深度和最小深度,并打印到控制台。

详解如何获取二叉树的最大深度和最小深度

5、运行主方法,观察控制台输出,图示,输出的二叉树最大深度和最小深度数值符合预期,测试通过。

详解如何获取二叉树的最大深度和最小深度

C语言如何定义一个数组 c语言怎么用数组存储和输出数据 对称与反对称怎么判断 怎么把 JSON数据转换为Python数据 c语言数组作为参数传入函数怎样做?
热门搜索
悬疑电影 男生发型图片大全 双程电影 泛光灯图片 非分熟女 电影