AlgoMaster Logo

Diameter of Binary Tree

tree=[1, 2, 3, 4, 5]
1class Solution {
2    private int maxDiameter = 0;
3
4    public int diameterOfBinaryTree(TreeNode root) {
5        calculateHeightAndDiameter(root);
6        return maxDiameter;
7    }
8
9    private int calculateHeightAndDiameter(TreeNode node) {
10        if (node == null) return 0;
11
12        int leftHeight = calculateHeightAndDiameter(node.left);
13        int rightHeight = calculateHeightAndDiameter(node.right);
14
15        int diameterThroughNode = leftHeight + rightHeight;
16
17        maxDiameter = Math.max(maxDiameter, diameterThroughNode);
18
19        return 1 + Math.max(leftHeight, rightHeight);
20    }
21}
0 / 32
12345Max Diameter: 0