The constraint is generally applied recursively to every subtree. That is, the tree is only balanced if:

- The left and right subtrees’ heights differ by at most one, AND
- The left subtree is balanced, AND
- The right subtree is balanced

According to this, the next tree is balanced:

```
A
/ \
B C
/ / \
D E F
/
G
```

The next one is **not** balanced because the subtrees of C differ by 2 in their height:

```
A
/ \
B C <-- difference = 2
/ /
D E
/
G
```

That said, the specific constraint of the first point depends on the type of tree. The one listed above is the typical for AVL trees.

Red-black trees, for instance, impose a softer constraint.