Lesson: when you see "lowest common ancestor" or "closest common node" in a problem statement, think LCA immediately. It is a standard pattern.
If there are many queries and no updates, Binary Lifting is the standard approach. Preprocess once, answer queries fast.
If there are updates to node values along paths, you would need HLD instead. But this problem is pure LCA: no subtrees, no path sums, no updates. Ancestor lookups.