treeDiameter<T> function
Implementation
int treeDiameter<T>(BinaryTreeNode<T>? root) {
int maxDiameter = 0;
int height(BinaryTreeNode<T>? node) {
if (node == null) return 0;
final int leftHeight = height(node.left);
final int rightHeight = height(node.right);
// Update max diameter if current path is longer
maxDiameter =
maxDiameter > (leftHeight + rightHeight)
? maxDiameter
: (leftHeight + rightHeight);
return 1 + (leftHeight > rightHeight ? leftHeight : rightHeight);
}
height(root);
return maxDiameter;
}