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 <= 100Approach & 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?