tl;dr:"A lockable tree is a tree with nodes that can be locked if none of its ancestors or descendants is locked. We are asked to implement locking/unlocking operations that should run in O(h) time where h is the height of the tree. Lock/unlock methods do not need to be thread-safe."