二叉树的直径
题目:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。
示例 :
给定二叉树
1
/ \
2 3
/ \
4 5
返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。
注意:两结点之间的路径长度是以它们之间边的数目表示。
思路:
代码:
1 /** 2 * Definition for a binary tree node. 3 * function TreeNode(val, left, right) { 4 * this.val = (val===undefined ? 0 : val) 5 * this.left = (left===undefined ? null : left) 6 * this.right = (right===undefined ? null : right) 7 * } 8 */ 9 /** 10 * @param {TreeNode} root 11 * @return {number} 12 */ 13 var diameterOfBinaryTree = function(root) { 14 let res = 0; 15 var helper = function (root) { 16 if (root == null) { 17 return 0; 18 } 19 let left = helper(root.left); 20 let right = helper(root.right); 21 res = Math.max(res, left + right); 22 return Math.max(left, right) + 1; 23 }; 24 helper(root); 25 return res; 26 };

浙公网安备 33010602011771号