这是结构
typedef struct node{
int data;
struct node *left;
struct node *right;
}node;
node* insert(node*, int);
node* delete_n(node* ,int);
delete_node 函数
node *delete_node(node* root,int k){
if(root==NULL){
printf("absent");
return root;
}
if(k > root->data){
root->right=delete_node(root->right,k);
}else if(k < root->data){
root->left=delete_node(root->left,k);
}else{
if(root->left==NULL){
node* temp=root->right;
free(root);
printf("deleted");
return temp;
}else if(root->right == NULL){
node* temp= root->left;
free(root);
printf("deleted");
return temp;
}else if(root->left!=NULL && root->right!=NULL){
node* temp=root->left;
while(temp && temp->right!=NULL){
temp=temp->right;
}
root->data=temp->data;
root->left=delete_node(root->left,temp->data);
}
}
return root;
}
仅当我放置类型为 node* 的返回类型时,我才会收到类型冲突的错误,但是当我删除返回类型时,代码成功运行。