package problems.medium;
import problems.utils.TreeNode;
/**
* Created by sherxon on 3/5/17.
*/
/**
* Diameter of binary tree
*/
public class WidthOfBinaryTree {
public int width(TreeNode root) {
if (root == null) return 0;
int heightLeft = height(root.left);
int heightRight = height(root.right);
int leftDiameter = width(root.left);
int rightDiameter = width(root.right);
return Math.max(heightLeft + heightRight + 1, Math.max(leftDiameter, rightDiameter));
}
private int height(TreeNode x) {
if (x == null) return 0;
return Math.max(height(x.left), height(x.right)) + 1;
}
}