543. 二叉树的直径

2021/12/4 23:16:44

本文主要是介绍543. 二叉树的直径,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

示例 :
给定二叉树

          1
         / \
        2   3
       / \     
      4   5    
返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。

注意:两结点之间的路径长度是以它们之间边的数目表示。

通过次数160,792提交次数289,354

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/diameter-of-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

/**
 * 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) {

    function deep(root) {
        if (!root) {
            return 0
        }
        return Math.max(deep(root.left), deep(root.right)) + 1;
    }
    let max = 0;

    function dfs(root) {
        if (!root) {
            return
        }
        let l1 = deep(root.left)
        let l2 = deep(root.right)
        max = Math.max(max, l1 + l2);
        dfs(root.left);
        dfs(root.right);
        return max;
    }
    return dfs(root)
};



这篇关于543. 二叉树的直径的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程