说这一题,就先要说下二叉树的最大深度这一题,这里就用到这这个思想,分别计算当前节点的最优子树的最大深度,然后返回最大深度即可。
var diameterOfBinaryTree = function (root) {
let maxDepth = 0
var depth = function (node) {
if (!node) return 0
let left = depth(node.left)
let right = depth(node.right)
// 保存当前节点的最大深度
maxDepth = Math.max(left + right, maxDepth)
// 计算当前节点的最大深度
return Math.max(left, right) + 1
}
depth(root)
return maxDepth
};