Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.
According to the defenition of LCA on Wikipedia “The lowest common ancestor is defined between two nodes p and q as the lowest node in T that has both p and q as descendants (where we allow a node to be a descendant of itself).”