Diameter of Binary Tree
Topic: 09. Trees
Link: LeetCode 543 - Diameter of Binary Tree
1. Logical Breakdown
- [x] Core Logic: Longest path =
LeftDepth + RightDepth. - [x] Traversal: Post-order DFS.
2. Visualization
graph TD
Root --> L["Left Depth"]
Root --> R["Right Depth"]
Sum["Max = L + R"]
3. Complexity
- Time: O(N)
- Space: O(H)
4. Code
package com.dsa.trees;
public class DiameterOfBinaryTree {
public static class TreeNode {
int val;
TreeNode left, right;
TreeNode(int val) { this.val = val; }
}
int maxDiameter = 0;
public int solve(TreeNode root) {
maxDepth(root);
return maxDiameter;
}
private int maxDepth(TreeNode node) {
if (node == null) return 0;
int left = maxDepth(node.left);
int right = maxDepth(node.right);
maxDiameter = Math.max(maxDiameter, left + right);
return Math.max(left, right) + 1;
}
}