前端算法-二叉树的最小深度

简介: 前端算法-二叉树的最小深度

题目

给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。

输入: root = [2,null,3,null,4,null,5,null,6]
输出: 5

题解

这道题我们无需去考虑它的左子树和右子树,根据题意我们去判断最左边或者最右边节点只要有一个没有了,那我们就让它终止掉,并且将记录的层级返回出去

我们先在函数中判断当前出参root是否存在,存在则继续往下执行,如果不存在则直接返回0,然后我们声明一个stack常量,它是一个栈,我们把当前出参root和当前层级1传递过去,接下来使用循环,循环判断条件是当前栈的长度不为0,在循环中我们使用shift方法结合es6的解构方式将当前节点和层级从stack中解构出来,解构出来的o变量代表当前的节点数,n变量代表当前层级,然后进行判断当前变量o的左节点树和右节点树是否为空,为空则直接终止循环返回当前对应层级数,否则继续往下执行并进行判断,如果当前变量o的左节点存在,则利用push方法将当前左节点和当前的层级加1添加到stack栈中,变量o右节点也做出同样的操作即可

/**
 * @param {TreeNode} root
 * @return {number}
 */
var minDepth = function(root) {
    if (!root) return 0;
            const stack = [
                [root, 1]
            ];
            while (stack.length!=0) {
                let [o, n] = stack.shift();
                if (!o.left && !o.right) {
                    return n;
                }
                if (o.left) {
                    stack.push([o.left, n + 1])
                }
                if (o.right) {
                    stack.push([o.right, n + 1])
                }
            }
};

坚持努力,无惧未来!

相关文章
|
7天前
|
移动开发 算法 前端开发
前端算法之堆排序
前端算法之堆排序
13 1
|
7天前
|
算法 前端开发
前端算法之快速排序
前端算法之快速排序
12 0
|
7天前
|
算法 前端开发 搜索推荐
前端算法之归并排序
前端算法之归并排序
11 0
|
7天前
|
算法 前端开发
前端算法之基数排序
前端算法之基数排序
9 1
|
7天前
|
算法 前端开发 搜索推荐
前端算法之桶排序
前端算法之桶排序
6 1
|
7天前
|
存储 算法 前端开发
前端算法之计数排序
前端算法之计数排序
10 1
|
7天前
|
算法 前端开发 搜索推荐
前端算法之希尔排序
前端算法之希尔排序
4 0
|
3天前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
4天前
|
存储 算法 数据可视化
基于harris角点和RANSAC算法的图像拼接matlab仿真
本文介绍了使用MATLAB2022a进行图像拼接的流程,涉及Harris角点检测和RANSAC算法。Harris角点检测寻找图像中局部曲率变化显著的点,RANSAC则用于排除噪声和异常点,找到最佳匹配。核心程序包括自定义的Harris角点计算函数,RANSAC参数设置,以及匹配点的可视化和仿射变换矩阵计算,最终生成全景图像。
|
4天前
|
算法 Serverless
m基于遗传优化的LDPC码NMS译码算法最优归一化参数计算和误码率matlab仿真
MATLAB 2022a仿真实现了遗传优化的归一化最小和(NMS)译码算法,应用于低密度奇偶校验(LDPC)码。结果显示了遗传优化的迭代过程和误码率对比。遗传算法通过选择、交叉和变异操作寻找最佳归一化因子,以提升NMS译码性能。核心程序包括迭代优化、目标函数计算及性能绘图。最终,展示了SNR与误码率的关系,并保存了关键数据。
13 1