给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回它的最大深度 3 。
本题很简单,我们只需要在遍历二叉树的时候,记录一下当前节点的深度
如果当前节点为真实节点,尝试使用当前节点深度更新最大深度
最后遍历完整棵二叉树,也就获取到了所有节点中的最大深度,即二叉树的最大深度
代码如下:
var maxDepth = function(root) {
// 初始化结果值为0
let res = 0;
// 前序遍历每个节点
function preorder(node,deep){
if(node === null) return;
// 如果当前节点不为空,尝试使用当前节点深度更新最大深度
res = Math.max(res,deep);
// 递归遍历左右子树
preorder(node.left,deep+1)
preorder(node.right,deep+1)
}
preorder(root,1);
return res;
};
至此我们就完成了 leetcode-104-二叉树的最大深度
如有任何问题或建议,欢迎留言讨论!