bintree insert(int x,bintree bst){
if(!bst){
bst = (bintree)malloc(sizeof(struct node));
bst->data = x;
bst->left=bst->right = NULL;
}else{
if(bst->data>x) bst->left=insert(int x,bst->left);
else if(bst->data<x) bst->right=insert(int x,right);
}
return bst;
}
有一个问题就是使用递归的时候
下面俩个语句用的是bst->left=
而不是使用return这是为什么
if(bst->data>x) bst->left=insert(int x,bst->left);
else if(bst->data<x) bst->right=insert(int x,right);
**
原因呢 是如果使用的是return那么返回的就是那个插入的结点的位置而不是整个二叉树根结点的位置了
**
而且插入的那个结点实际上是并没有插入到以bt为根结点的树中的。
**
**