Trees Balanced Binary Tree Estimated reading: 1 minute 36 views A height-balanced binary tree is defined as a binary tree in which the left and right subtrees of every node differ in height by no more than 1. public boolean isBalanced(TreeNode root) { return dfs(root)[0] == 1; } private int[] dfs(TreeNode root) { if (root == null) { return new int[]{1, 0}; } int[] left = dfs(root.left); int[] right = dfs(root.right); boolean balanced = left[0] == 1 && right[0] == 1 && Math.abs(left[1] - right[1]) <= 1; int height = 1 + Math.max(left[1], right[1]); return new int[]{balanced ? 1 : 0, height}; }