Given a binary tree and two nodes **p** and **q**, find their **Lowest Common Ancestor (LCA)**.
The LCA is defined as the lowest node in the tree that has both p and q as descendants (a node can be a descendant of itself).