543. Diameter of Binary Tree

https://leetcode.com/problems/diameter-of-binary-tree/description

Understanding the Problem:

Before diving into the solution, let’s understand the problem statement. 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 node.

Approach and Code Explanation:

To solve the diameter of a binary tree problem, we’ll use a recursive approach. We’ll define a helper function recurse that calculates the height of the binary tree rooted at a given node and updates the maximum diameter encountered so far.

Here’s the breakdown of the Java solution:

class Solution {
    public int maxLength = -1;
    
    public int diameterOfBinaryTree(TreeNode root) {
        recurse(root);
        return maxLength;
    }
    
    public int recurse(TreeNode node) {
        if (node == null) {
            return 0;
        }
        int left = recurse(node.left);
        int right = recurse(node.right);
        maxLength = Math.max(maxLength, left + right);
        return 1 + Math.max(left, right);
    }
}
  1. We define a class Solution that contains the solution logic.
  2. We declare a class variable maxLength to store the maximum diameter encountered.
  3. The diameterOfBinaryTree method is the entry point of our solution. It invokes the recurse method to compute the diameter of the binary tree rooted at the given root node.
  4. The recurse method calculates the height of the binary tree rooted at a given node. It returns the height of the subtree rooted at the current node. Additionally, it updates the maxLength variable with the maximum diameter encountered so far.

Related Post