如何递归地在二叉树中执行插入,使其始终从左侧填充???以下是我编写的代码,这当然是错误的...我在递归方面有点弱...请提供您的建议...
void insert(node **root,int n)
{
node *temp;
temp=(node *)malloc(sizeof(node));
temp->data=n;
temp->lchild=NULL;
temp->rchild=NULL;
if(*root==NULL)
{
*root=temp;
return;
}
if((*root)->lchild==NULL)
{
(*root)->lchild=temp;
return;
}
if((*root)->rchild==NULL)
{
(*root)->rchild=temp;
return;
}
insert(&((*root)->lchild),n);
insert(&((*root)->rchild),n);
return;
}
最佳答案
- 不要在 C 程序中转换
malloc
的返回值。 - 您的程序可能会将
n
插入到两个子树中。
关于c - 插入二叉树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9669372/