二叉树的直径
-
题目
给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。
-
代码
var diameterOfBinaryTree = function(root) { let maxd = 0; function maxDeepth(node){ //遍历到结束条件 if(!node) return 0; let l=maxDeepth(node.left) let r=maxDeepth(node.right) //维护直径 maxd=Math.max(l+r,maxd) //返回当前节点的最大深度 return Math.max(l,r)+1 } //从根节点遍历最大深度 maxDeepth(root) //返回直径 return maxd };