본문 바로가기

자료구조&알고리즘

[단일 연결 리스트] 첫 노드 삭제

첫 노드를 삭제하기 위해 del 이름의 메모리 공간을 할당한다. 

void delNode() {
node* delNode = head; //delNode 에 head 값을 넣음 
}

만약 연결리스트가 만들어지지 않은 상태이면 삭제할게 없는거니까 함수를 종료한다. 

if (head == NULL) {
	return; 
}

 

만약 head 가 NULL 이 아닌 경우 head를 그 다음 노드로 옮겨준다. 

head = head->next;

 

 

delNode 동적 메모리를 해제해서 첫 번째 노드 5번을 삭제한다. 

free(delnNode);

 

<전체 코드>

typedef struct node {
int value;
struct node* next;
}node;

node* head = NULL; 

void delNode() {
node* delNode = head; //delNode 에 head 값을 넣음 
if (head == NULL) {  //연결리스트가 구성된 상태인지 확인하고          
return;              //구성이 안된 상태면 삭제할게 없으니까 함수 종료 
}
head = head->next; 
free(delNode); 
}