THN Interview Prep

543. Diameter of Binary Tree

At a Glance

  • Topic: Binary Tree
  • Pattern: DFS
  • Difficulty: Easy
  • LeetCode: 543

Problem Statement

Given the root of a binary tree, return 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.

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

Example 1:

Input: root = [1,2,3,4,5] Output: 3 Explanation: 3 is the length of the path [4,2,1,3] or [5,2,1,3].

Example 2:

Input: root = [1,2] Output: 1

Constraints:

The number of nodes in the tree is in the range [1, 104].
-100 <= Node.val <= 100

Approach & Solution Steps

Use a recursive DFS approach to calculate the height of each subtree. Update the maximum diameter found so far at each node.

Optimal JS Solution

function diameterOfBinaryTree(root) {
  let maxDiameter = 0;
  const dfs = (node) => {
    if (!node) return 0;
    const left = dfs(node.left);
    const right = dfs(node.right);
    maxDiameter = Math.max(maxDiameter, left + right);
    return Math.max(left, right) + 1;
  };
  dfs(root);
  return maxDiameter;
}

Edge Cases & Pitfalls

  • Always consider empty or null inputs.
  • Watch out for off-by-one index errors.

Mark this page when you finish learning it.

Last updated on

Spotted something unclear or wrong on this page?

On this page