写点什么

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

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

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



解题思路:



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

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



/**
* @param {TreeNode} root
* @return {number}
*/
var maxDepth = function (root) {
let max = 0; // 存储最大深度
// 递归遍历节点,并计算当前深度
function recursion(node, level) {
const newLevel = level + 1; // 进入递归时,将当前层级+1
// 当子节点都为空,表示当前节点为叶子节点
if (!node.left && !node.right) {
// 存储当前最大深度
max = Math.max(max, newLevel);
}
// 当左右节点存在时,才继续遍历
node.left && recursion(node.left, newLevel);
node.right && recursion(node.right, newLevel);
}
// 只有二叉树存在时,才进行遍历
root && recursion(root, 0);
return max;
};



/**
* @param {TreeNode} root
* @return {number}
*/
var maxDepth = function (root) {
let max = 0;
function traversal(node, level) {
if (!node) {
max = Math.max(max, level);
return;
}
const newLevel = level + 1;
traversal(node.left, newLevel);
traversal(node.right, newLevel);
}
traversal(root, 0);
return max;
};



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

Lee Chen

关注

还未添加个人签名 2018.08.29 加入

还未添加个人简介

评论

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