public TreeNode(int value){
public static int FindHeight(TreeNode node){
var leftHeight=FindHeight(node.Left);
var rightHeight=FindHeight(node.Right);
return 1+Math.Max(leftHeight,rightHeight);
public static bool isBalanced(TreeNode node){
var left=FindHeight(node.Left);
var right=FindHeight(node.Right);
if(left-right>1) return false;
var leftBal=isBalanced(node.Left);
var rightBal=isBalanced(node.Right);
if(!leftBal || !rightBal) return false;
public static void Main()
TreeNode root=new TreeNode(1);
root.Right.Left.Right=new(5);
Console.WriteLine(isBalanced(root));