단일 체인 테이블 지정 결점 삭제 세그먼트 오류

2511 단어
처음에 나는 이렇게 썼다.
struct node * deletenode(struct node *head,int b){
    struct node *pre,*cur;
    pre=NULL;
    cur=head;
    if(head&&head->data==b){
        head=head->next;
        free(cur);
    }    
    else{
        while(cur->data!=b){
            pre=cur;
            cur=cur->next;
        }
        pre->next=cur->next;
        free(cur);    
    }
    return head;
}

결과 제출 시 세그먼트 오류, 아래로 변경 이렇게 통과, 당분간 왜 그런지 모르겠어요...
struct node * deletenode(struct node *head,int b){
    struct node *pre,*cur;
    pre=NULL;
    cur=head;
    if(head&&head->data==b){
        head=head->next;
        free(cur);
    }    
    else{
        while(cur){
        if(cur->data==b){
            pre->next=cur->next;
            free(cur);
        } 
        pre=cur;
        cur=cur->next;
    }
    return head;
    }
}

 
 
전재 대상:https://www.cnblogs.com/littleLittleTiger/p/11523281.html

좋은 웹페이지 즐겨찾기