Xóa 1 node trong dslk đơn

Mọi người cho e hỏi hàm xóa 1 node bất kì trong dslk đơn của e sai ở đâu ạ.

void deletenode(LIST &l, int a){
	NODE *temp = NULL;
	for(NODE *k = l.pHead; k!= NULL; k =k->next){
		if(k->data == a){
			if(k == l.pHead){
				l.pHead = l.pHead->next;
				delete k;
			}
			if(k == l.pTail){
				l.pTail = temp;
				temp->next = NULL;
				delete k;
			}
			temp->next = k->next;
			delete k;
		}
		temp = k;
	}
}

delete k rồi thì còn đâu nữa mà k = k->next bạn ơi. :slight_smile:

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?