Data structures C语言编程与数据结构
如何找到二叉树两个不同节点的最近祖先?对于从左节点到根的路径上的每个节点,检查该节点是否位于从右节点到根的路径上。尝试以下操作:Data structures C语言编程与数据结构,data-structures,Data Structures,如何找到二叉树两个不同节点的最近祖先?对于从左节点到根的路径上的每个节点,检查该节点是否位于从右节点到根的路径上。尝试以下操作: ances(struct tree *root, struct tree *p, struct tree *q) { struct tree *left, *right, *temp; if(root->left==p || root->right==p || root->left==q || root->righ
ances(struct tree *root, struct tree *p, struct tree *q)
{
struct tree *left, *right, *temp;
if(root->left==p || root->right==p || root->left==q || root->right==q)
{
return(root);
}
else
{
left = ancestor(root->left, p, q);
right = ancestor(root->right, p, q);
if(left!=NULL && right!=NULL)
{
return(root);
}
else
{
temp = (left != NULL) ? left : right;
return(temp);
}
}
if(root == NULL)
return NULL;
}
是的,我知道怎么做了。。。谢谢