-1
我想写一个代码插入元素到一个二叉树没有递归。但我面临的问题是,每次我尝试插入一个节点,它不会插入和树不如预期般增长。只有第一个元素留在树中。二叉树代码错误
void insert(struct node **head1,int data1)
{
struct node *temp1,*temp;
temp=*head1;
struct node *datatemp,*prevtemp;
while(temp!=NULL)
{
if(temp->data < data1)
{
temp=temp->right;
}
else if(temp->data > data1)
{
temp=temp->left;
}
}
datatemp=(struct node *)malloc(sizeof(struct node));
datatemp->data=data1;
datatemp->right=NULL;
datatemp->left=NULL;
temp=datatemp;
}
请帮助..我试图调试,但我无法找到我的逻辑错误。
您可能想将您的标记从C++转换为c,因为您明显使用C语言。另外,请阅读:[mcve]。 – anatolyg
你认为这个'temp = datatemp;'应该做什么? – StoryTeller
请确保您处理您尝试插入的第二个号码与第一个号码相同的情况。您的代码处理< & >,但不是== – attaboy182