Balanced Binary Tree — Height DFS with Early Exit

Sanjeev SharmaSanjeev Sharma
1 min read

Advertisement

Problem 353 · Balanced Binary Tree

Difficulty: Easy · Pattern: Height DFS with Early Exit

Solutions

# Python
def isBalanced(root):
    def height(node):
        if not node: return 0
        l, r = height(node.left), height(node.right)
        if l == -1 or r == -1 or abs(l-r) > 1: return -1
        return 1 + max(l, r)
    return height(root) != -1
// Java
public boolean isBalanced(TreeNode root) { return height(root)!=-1; }
int height(TreeNode node) {
    if (node==null) return 0;
    int l=height(node.left), r=height(node.right);
    if (l==-1||r==-1||Math.abs(l-r)>1) return -1;
    return 1+Math.max(l,r);
}

Complexity

  • Time: O(n)
  • Space: O(h)

Advertisement

Sanjeev Sharma

Written by

Sanjeev Sharma

Full Stack Engineer · E-mopro