我在问题链接的二叉树的插入操作中遇到错误(https://www.hackerrank.com/challenges/binary-search-tree-insertion) 我的代码是:
insert(node * root, int value)
{
int x = 0;
node* r = root;
node* xx;
while(x==0)
{
while(value<r->data&&r->left!=NULL)
{
r=r->left;
}
if(value<r->data&&r->left == NULL)
{
xx->data = value;
r->left = xx;
break;
}
while(value>r->data && r->right!=NULL)
{
r = r->right;
}
if(value>r->data&& r->right == NULL)
{
xx->data = value;
r->right =xx;
break;
}
}
return root;
}
我从hackerrank得到的错误如下:
错误的答案! 一些可能的错误:
答案 0 :(得分:0)
对于初学者,您需要在每次插入时分配一个新节点。
像这样开始宣言:
node* insert(node * root, int value)
{
node* xx = new node();
xx->left = NULL;
xx->right = NULL;
xx->data = value;