human: 生成一个算法，以找到二叉树中两个节点的第一个共同祖先。
 bot: 首先，我们可以使用递归的方式来解决这个问题。从根节点开始，我们检查左子树和右子树是否包含目标节点。如果左子树和右子树都包含目标节点，那么当前节点就是它们的第一个共同祖先。如果只有左子树包含目标节点，那么我们继续在左子树中递归查找。如果只有右子树包含目标节点，那么我们继续在右子树中递归查找。如果左子树和右子树都不包含目标节点，那么当前节点不是它们的共同祖先，我们返回null。这个算法的时间复杂度是O(n)，其中n是二叉树中的节点数。