1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| package com.demo.s110;
class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left, TreeNode right) { this.val = val; this.left = left; this.right = right; } }
class Solution { private static final int UNBALANCED = -1;
public boolean isBalanced(TreeNode root) { return helper(root) != UNBALANCED; }
public int helper(TreeNode root) { if (root == null) return 0;
int left = helper(root.left); if (left == UNBALANCED) return UNBALANCED;
int right = helper(root.right); if (right == UNBALANCED) return UNBALANCED;
if (Math.abs(left - right) > 1) return UNBALANCED;
return Math.max(left, right) + 1; } }
|