LeetCode 题解:111. 二叉树的最小深度,递归,JavaScript,详细注释

用户头像
Lee Chen
关注
发布于: 2020 年 10 月 09 日
LeetCode题解:111. 二叉树的最小深度,递归,JavaScript,详细注释

原题链接:https://leetcode-cn.com/problems/minimum-depth-of-binary-tree/



解题思路:



  1. 递归遍历二叉树,用递归函数的一个参数标识当前层的深度,进入每一层时将当前层级标识+1。

  2. 遍历叶子节点时,将当前深度与已存储的最小深度对比,记录最小深度。



/**
* @param {TreeNode} root
* @return {number}
*/
var minDepth = function (root) {
let min = 0; // 存储最小深度
// 递归遍历节点,并计算当前深度
function recursion(node, level) {
let newLevel = level + 1; // 进入递归时,将当前层级+1
// 当子节点都为空,表示当前节点为叶子节点
if (!node.left && !node.right) {
// 如果当前最小值为0,则需要设置初始值,避免最小值始终为0
if (!min) {
min = newLevel;
}
// 仅存储当前最小深度
min = Math.min(min, newLevel);
}
// 当左右节点存在时,才继续遍历
node.left && recursion(node.left, newLevel);
node.right && recursion(node.right, newLevel);
}
// 只有二叉树存在时,才进行遍历
root && recursion(root, 0);
return min;
};



发布于: 2020 年 10 月 09 日 阅读数: 14
用户头像

Lee Chen

关注

还未添加个人签名 2018.08.29 加入

还未添加个人简介

评论

发布
暂无评论
LeetCode题解:111. 二叉树的最小深度,递归,JavaScript,详细注释