[路飞]_leetcode-104-二叉树的最大深度

174 阅读1分钟

[题目地址] [B站地址]

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。

示例:
给定二叉树 [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-二叉树的最大深度

如有任何问题或建议,欢迎留言讨论!