543. Diameter of Binary Tree

Description

Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a binary tree is the length of the longest path between any two nodes in a tree. This path may or may not pass through the root.

Example: Given a binary tree

          1
         / \
        2   3
       / \     
      4   5

Return 3, which is the length of the path [4,2,1,3] or [5,2,1,3].

Note: The length of path between two nodes is represented by the number of edges between them.

Solution

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * Traverse the binary tree with Depth-First Search (DFS) algorithm (postorder)
 * @param {TreeNode} root
 * @return {number}
 */
var diameterOfBinaryTree = function(root) {
    "use strict";
    let max = 0;
    function calDiameter(node) {
        if (!node) {
            return 0;
        }
        let left = calDiameter(node.left);
        let right = calDiameter(node.right);
        max = (left+right) > max ? (left+right) : max;
        return Math.max(left+1, right+1);
    }
    calDiameter(root, 0);
    return max;
};

results matching ""

    No results matching ""