二叉树的最低公共父节点

给定一个二叉树的根节点和另外两个节点p,q,计算p,q的最低公共父节点。


Node *LCA(Node *root, Node *p, Node *q)
{
    if (root == NULL)
    {
        return NULL;
    }

    if ((p == root) || (q == root))
    {
        return root;
    }

    Node *left = LCA(root->left, p, q);
    Node *right = LCA(root->right, p, q);
    if (left && right)
    {
        return root;
    }
    
    return left? left : right;
}

 

你可能感兴趣的:(二叉树的最低公共父节点)