给定二叉树中的两个节点,要求返回这两个节点的最低父节点。
Node* LCA(Node *root, Node *p, Node *q)
{
if (root == NULL)
{
return NULL;
}
if (root == p || root == q)
{
return root;
}
Node *left = LCA(root->left, p, q);
Node *right = LCA(root->right, p, q);
if (left && right)
{
return root;
}
return left != NULL? left : right;
}