原题链接:https://leetcode-cn.com/problems/er-cha-shu-de-zui-jin-gong-gong-zu-xian-lcof/
TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
if (root == NULL || root == p || root == q) return root;//当越过叶节点,则直接返回null,当root等于p,q,则直接返回root
TreeNode* left = lowestCommonAncestor(root->left, p, q);//递归左子树
TreeNode* right = lowestCommonAncestor(root->right, p, q);//递归右子树
if (left == NULL) return right;//左子树为空,说明都不在其左子树中,返回右子树
if (right == NULL) return left;//右子树为空,说明都不在其右子树,返回左子树,
//上面两种情况,包含了left==NULL&&right==NULL的情况
return root;//左子树和右子树都不为空,说明各自在其左右子树中,返回根节点root
}