Code:
int removeallkey(dslk &l,int key){
	node*t=l.head;
	int x=-1;
	while(t!=NULL){
		x=-1;
		if(t->data==key){
				if(t==l.head){
					removefirst(l);
					t=l.head;
				}
				else{
					node*p=t->prev;
					t=t->prev;
					removeafter(l,p);
				}
			x=1;
			}
			if(x!=1)
				t=t->next;
		}
}
Hàm này dùng phương pháp gắn flag để thực hiện...mình muốn tối ưu hàm này không dùng phương pháp gắn flag...bạn nào có thể giúp mình được không cảm ơn nhiều ^^!