In a binary tree T, for a node v, the LEFT-HEIGHT(v) is the length of the longest path from v to any leaf in the left subtree of v. If v has no left child then LEFT-HEIGHT(v) = 0. The RIGHT-HEIGHT(v) is defined accordingly. A node v is said to be properly balanced if |LEFT-HEIGHT(v) -RIGHT-HEIGHT(v)| ≤ 1. Design an efficient algorithm that, given a binary tree, enumerates all the nodes which are properly balanced.