Pergunta de entrevista da empresa Microsoft

Given a binary tree and two nodes p and q, find their lowest common ancestor.