请问这样建二叉树有什么问题?
为什么只能插入第一个结点,后面的b和c都不能插入呢?
#include <iostream>
using namespace std;
class TreeNode
{
public:
int value;
TreeNode *left;
TreeNode *right;
TreeNode()
{
value = 0;
left = right = NULL;
}
~TreeNode()
{
left = right = NULL;
}
TreeNode(int avalue)
{
value = avalue;
left = right = NULL;
}
};
TreeNode *root = NULL;
void insert(TreeNode *newnode, TreeNode **root)
{
if(*root == NULL)
{
*root = newnode;
return;
}
if((newnode)->value < (*root)->value)
{
insert(newnode,&((*root)->left));
}
else if((newnode)->value >= (*root)->value)
{
insert(newnode,&((*root)->right));
}
}
int main()
{
TreeNode *a = new TreeNode(1);
TreeNode *b = new TreeNode(5);
TreeNode *c = new TreeNode(4);
insert(a,&root);
insert(b,&root);
insert(c,&root);
cout<<root->value<<endl;
// cout<<(root)->left->value<<endl;
// cout<<(root)->left->value<<endl;
}