leetcode543.二叉树的直径

leetcode543.二叉树的直径

题目

给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。

用例

          1
         / \
        2   3
       / \     
      4   5    

求解

/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var diameterOfBinaryTree = function(root) {
    let res=0
    fn1(root)
    return res
    
    function fn1(root){
        if(root==null){
            return -1
        }
        let left = fn1(root.left)
        let right = fn1(root.right)
        res=Math.max(left+right+2,res)
        return Math.max(left,right)+1
    }
};
posted @ 2021-12-13 13:40  BONiii  阅读(26)  评论(0)    收藏  举报