牛客Top101 BM28 二叉树的最大深度-- JS实现

描述

求给定二叉树的最大深度,

深度是指树的根节点到任一叶子节点路径上节点的数量。

最大深度是所有叶子节点的深度的最大值。

(注:叶子节点是指没有子节点的节点。)

数据范围:0≤n≤100000,树上每个节点的val满足∣val∣≤100
要求: 空间复杂度 O(1),时间复杂度 O(n)

示例1

输入:

{1,2}

返回值:

2

示例2

输入:

{1,2,3,4,#,#,5}

返回值:

思路:使用递归的方法用下层递归返回的数字加上当前层的1,因为递归左边右边深度大小不同,我们使用Math.max 比较两边哪边深度大就使用哪个数值。

 完整代码:

/*
 * function TreeNode(x) {
 *   this.val = x;
 *   this.left = null;
 *   this.right = null;
 * }
 */

/**
  * 
  * @param root TreeNode类 
  * @return int整型
  */
function maxDepth( root ) {
    // write code here
    const dis=computed(root);
    return dis;
}
function computed(root) {
  if(!root) return 0;
  let left=computed(root.left);
  let right=computed(root.right);
  return Math.max(left+1,right+1);
}
module.exports = {
    maxDepth : maxDepth
};

你可能感兴趣的:(JS数据结构及算法,算法,javascript,数据结构)