Concept Flow - Lowest Common Ancestor in Binary Tree
Start at root
Check if root is nil or matches p or q
If yes, return root
Recurse left subtree
Recurse right subtree
If both left and right return non-nil
Current node is LCA
Else return non-nil child
End
Start from root, check base cases, recurse left and right, if both sides find nodes, current is LCA, else return found node.