NODE *deletef( char item, NODE *list ) { NODE *current; NODE *follow; current = follow = list;
// 삽입 위치로 이동 /*while((current != NULL) && (current->data != item)) // 지울 item 이 같으면 종료 { // current != NULL 가 있는 이유 : 끝까지 가서 못찾으면 무한대로 빠짐. follow = current; current = current->next; }*/ while(1) // 위와 같은데 보기좋은 코드 { if(current == NULL) { break; } if(current->data == item) { break; } follow = current; current = current->next; } if(current == NULL ) // 끝까지 갔는가 { printf("항목을 찾지 못하였습니다..\n"); return list; } if(list == current) // 제일 앞인가 { list = current->next; } /*else if( current->next == NULL ) // 끝인가 { follow->next = NULL; // 끝이면 current 를 떼줌. 뒤에 else 랑 같은말 }*/ else // follow 에다가 current 를 { // 넣어줌 사이값을 떨어뜨림. follow->next = current->next; } free(current); return list; } | |