Hierarchical data: depth-first and breadth-first traversals.
Return node values grouped level by level, top to bottom.
Find the deepest node that has both target nodes as descendants.
Check that a tree is a BST using an allowed (low, high) range per node.