二叉树的深度_十七:二叉树的最小深度
二叉树的最小深度:从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最短路径的长度为树的最小深度。
算法一
/** * @description 二叉树最小深度 * @param {*} root 二叉树 */function binaryTreeMinDepth(root) { // 节点不存在时返回长度为0 if (!root) return 0 // 当节点存在时但是左右子节点不存在,返回长度为1 if (!root.left && !root.right) return 1 // 当左节点不存在,右节点存在,递归求出右节点深度,并加1 if (!root.left) return binaryTreeMinDepth(root.right) + 1 // 当右节点不存在,右节点存在,递归求出左节点深度,并加1 if (!root.right) return binaryTreeMinDepth(root.left) + 1 // 当左右节点都存在时 递归求出左右节点深度,毕竟求出左右节点深度最小值加1 return Math.min(binaryTreeMinDepth(root.right), binaryTreeMinDepth(root.left)) + 1}
算法二
/** * @description 二叉树最小深度 * @param {*} root 二叉树 */function binaryTreeMinDepth(root) { // 根节点不存在时返回长度为0 if (!root) return 0 // 根节点存在深度为1 let depth = 1 // 声明一个队列默认存放根节点 const queue = [root] while (queue.length) { const len = queue.length // 遍历栈求出最小深度 for (let i = 0; i < len; i++) { // 取出栈尾 const current = queue.shift() // 如果遇到左右节点都不存在直接返回深度 if (!current.left && !current.right) return depth // 如果左节点存在入栈 if (current.left) queue.push(current.left) // 如果右节点存在入栈 if (current.right) queue.push(current.right) } // 深度加1 ++depth } // 如果找不到最小深度 则返回-1 return -1}
二叉树的深度_十七:二叉树的最小深度相关推荐
- LeetCode 二叉树、N叉树的最大深度与最小深度(递归解)
目录 104. 二叉树的最大深度 559. N叉树的最大深度 111. 二叉树的最小深度 之前的笔记中,已经用层序遍历解决过这个问题了 现在试着用深度的解法去求解 104. 二叉树的最大深度 给定一个 ...
- 数据结构树二叉树计算节点_查找二叉树中叶节点的数量 数据结构
数据结构树二叉树计算节点 Algorithm: 算法: One of the popular traversal techniques to solve this kind of problems i ...
- 二叉树层序遍历_求二叉树的层序遍历
题目描述 给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 例如: 给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树层序遍历的结果是 [ [3], [9,20], ...
- 创建二叉树的代码_解二叉树的右视图的两种方式
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值. 示例: 问题分析 这题说的很明白,就是站在一棵二叉树的右边,你所能看到的结点值.对于二叉树的遍历,前面有简单 ...
- 护壁桩嵌入深度_钻孔灌注桩入岩深度
第 1 页 共 2 页 钻孔灌注桩入岩深度 特 征码 标签 特征码 ] 关于钻孔灌注桩入岩深度是多少?想要知道答案嘛, 下面是我们 梳理的有关钻孔灌注桩入岩深度相关内容,基本情况如下: 钻孔灌注桩入岩 ...
- 护壁桩嵌入深度_钻孔灌注桩嵌岩深度最少多少
展开全部 一般是嵌入石灰岩1.5倍桩径,并不小于1.5米. 一.灌注桩系是指在工程现场通过62616964757a686964616fe58685e5aeb931333431363038机械钻孔.钢管 ...
- 二叉树(六):二叉树的最大深度与最小深度
一.二叉树的深度与高度 1.二叉树的深度 对于二叉树中的某个节点,其深度是从根节点到该节点的最长简单路径所包含的节点个数,是从上面向下面数的.因此访问某个节点的深度要使用先序遍历 2.二叉树的高度 对 ...
- 完全二叉树最小深度_二叉树:我有多少个节点?
给「代码随想录」一个星标吧! ❝ 不管有多少个节点,大家中秋&&国庆快乐哈 ❞ 如果之前两篇二叉树:看看这些树的最大深度, 二叉树:看看这些树的最小深度都认真看了的话,这道题目可以分分 ...
- c#二叉树 取叶子节点个数_二叉树的最小深度+完全二叉树的节点个数
二叉树的最小深度 题目:给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明:叶子节点是指没有子节点的节点. 示例 1: 输入:root = [3,9,20 ...
最新文章
- ubuntu18.04搭建 kubernetes(k8s)集群
- 知乎上关于固态硬盘的一些知识
- 华章7-8月份新书简介(2015年)
- AcWing 1015. 摘花生
- 【oracle案例】ORA-01102: cannot mount database in EXCLUSIVE mode .
- xampp for linux
- 2009年IT就业“危”中寻“机”
- could not be installed at this time
- 26. Location assign() 方法
- 互联网寒冬!闭关60天学懂NDK+Flutter,专题解析
- 移除word文档的域代码 remove all field codes of word
- 一个牛人的经历---北京八年——从极度贫困到财务自由
- 微信公众号支付的回调地址 不起作用的问题
- 【计算机网络】互联网上的音频/视频服务
- 网易2017春招笔试——集合
- 惊了,深圳房价比北京还高。。。
- .xyz让域名应用充满艺术感
- PHP中xml转json
- 贝壳二手房爬虫,搞搞房价
- 从程序员到项目经理(三):认识项目经理
热门文章
- classpass 配置mysql_jmeter压测学习18-JDBC配置连接mysql数据库
- 学习Winform了解到switch和if-else的妙处
- 服务器mysql如何添加数据库文件,如何在使用MySQL作为嵌入式服务器时创建数据库文件...
- 2021年峰峰春晖中学高考成绩查询,峰峰春晖中学2019年录取分数线
- 【OS学习笔记】一 处理器、内存和指令
- not enough arguments for format string
- 防抖debounce和节流throttle
- java虚拟机10.内存模型与线程
- [Leetcode][第201题][JAVA][数字范围按位与][位运算][Brian Kernighan]
- 小说中人称转换作用_长篇儿童小说《合欢》:一树红绒落马缨