这是我的二叉树的实现(这不是 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);
}
}
}
现在我的问题是如果两个节点在右子树和左子树中都相同,如何找到两个节点的最低共同祖先
那么这个的最低共同祖先应该是什么
我在下面的问题中理解了 nick johnson 的答案,但我不明白如何做上述类型的树