LeetCode asks you to find the lowest common ancestor of nodes in a binary tree. You are given a binary tree root and target nodes p and q. Return the deepest node that is an ancestor of both. Every node is considered its own ancestor, so if p is an ancestor of q, then p is the LCA.
This problem tests your ability to write a clean recursive solution. You do not need binary lifting or Euler tour here because you only answer a single query on a moderately sized tree. The recursive approach runs in time and space, which is efficient enough.