我的Avl树在旋转部分不断出现seg故障
void leftRotate(AVLNode **rootptr){
AVLNode *temp1, *temp2;
if(rootptr!=NULL && *rootptr!=NULL && (*rootptr)->right!=NULL){
temp1 = *rootptr;
if(temp1->parent->left == temp1 && temp1->right != NULL) { //Left rotate for left-right cases
temp1->right->parent = temp1->parent;
temp1->parent->left = temp1->right;
temp1->parent = temp1->right;
temp1->right->left = temp1;
temp1->left = temp1->right = NULL;
temp1 = temp1->parent;
}else{ //Left rotate for right-right cases
if(temp1->parent->parent == NULL){
temp1->left = temp1->parent;
temp1->left->parent = temp1;
*rootptr = temp1;
temp1->parent = NULL;
}
}
updateHeight(temp1->left);
updateHeight(temp1);
}
}
错误特别发生在这一部分。
if(temp1->parent->parent == NULL){
temp1->left = temp1->parent;
temp1->left->parent = temp1;
*rootptr = temp1;
temp1->parent = NULL;
}
右侧左侧旋转的情况已经起作用,右侧情况下的左侧旋转一直给我一个seg故障。我已经编辑了很多次但是我不能把枢轴的父母放到它的左边孩子而没有seg错误。