这是我的二叉树的实现(这不是Lca的代码只是二叉树的正常实现,只是为了让我知道如何构造二叉树)
void insert(int n)
{
create(&root,n);
}
void create(node** temp,int n)
{
if(root==NULL)
{
(*temp)=new node;
(*temp)->data=n;
(*temp)->right=NULL;
(*temp)->left=NULL;
root=*temp;
}
else
{
if((*temp)==NULL)
{
(*temp)=new node;
(*temp)->data=n;
(*temp)->right=NULL;
(*temp)->left=NULL;
}
else
{
char c;
cout<<"enter the direction";
cout<<endl;
cin>>c;
if(c=='l')
create(&((*temp)->left),n);
else
create(&((*temp)->right),n);
}
}
}
现在我的问题是如果在右子树和左子树中两个节点相同,如何找到两个节点的最低共同祖先 例如
那么什么应该是这个
的最低共同祖先我在下面的问题中理解了尼克约翰逊的答案,但我不理解如何做以上类型的树
How to find the lowest common ancestor of two nodes in any binary tree?