//Code by Shubham Joshi
#include <bits/stdc++.h>
using namespace std;
struct Node
{
int data;
Node* next;
};
Node *newNode(int data)
{
Node *new_node = new Node;
new_node->data = data;
new_node->next = NULL;
return new_node;
}
void print(Node *root)
{
Node *temp = root;
while(temp!=NULL)
{
cout<<temp->data<<" ";
temp=temp->next;
}
}
Node* removeDuplicates(Node *root);
int main() {
// your code goes here
int T;
cin>>T;
while(T--)
{
int K;
cin>>K;
Node *head = NULL;
Node *temp = head;
for(int i=0;i<K;i++){
int data;
cin>>data;
if(head==NULL)
head=temp=newNode(data);
else
{
temp->next = newNode(data);
temp=temp->next;
}
}
Node *result = removeDuplicates(head);
print(result);
cout<<endl;
}
return 0;
}
/*The structure of linked list is the following
struct Node
{
int data;
Node* next;
};*/
Node *removeDuplicates(Node *root)
{
// your code goes here
struct Node* curr = root,*prev = NULL;
while(curr)
{
if(prev==NULL)
{
prev = curr;
curr = curr->next;
}
else if(curr->data!=prev->data)
prev = curr;
else
{
prev->next = curr->next;
delete curr;
curr = prev->next;
}
}
return root;
}
Ly9Db2RlIGJ5IFNodWJoYW0gSm9zaGkKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgTm9kZQp7CmludCBkYXRhOwpOb2RlKiBuZXh0Owp9OwpOb2RlICpuZXdOb2RlKGludCBkYXRhKQp7CiAgICBOb2RlICpuZXdfbm9kZSA9IG5ldyBOb2RlOwogICAgbmV3X25vZGUtPmRhdGEgPSBkYXRhOwogICAgbmV3X25vZGUtPm5leHQgPSBOVUxMOwogICAgcmV0dXJuIG5ld19ub2RlOwp9CnZvaWQgcHJpbnQoTm9kZSAqcm9vdCkKewpOb2RlICp0ZW1wID0gcm9vdDsKd2hpbGUodGVtcCE9TlVMTCkKewpjb3V0PDx0ZW1wLT5kYXRhPDwiICI7CnRlbXA9dGVtcC0+bmV4dDsKfQp9Ck5vZGUqIHJlbW92ZUR1cGxpY2F0ZXMoTm9kZSAqcm9vdCk7CmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJaW50IFQ7CgljaW4+PlQ7CgoJd2hpbGUoVC0tKQoJewoJCWludCBLOwoJCWNpbj4+SzsKCQlOb2RlICpoZWFkID0gTlVMTDsKICAgICAgICAgICAgICAgIE5vZGUgKnRlbXAgPSBoZWFkOwoKCQlmb3IoaW50IGk9MDtpPEs7aSsrKXsKCQlpbnQgZGF0YTsKCQljaW4+PmRhdGE7CgkJCWlmKGhlYWQ9PU5VTEwpCgkJCWhlYWQ9dGVtcD1uZXdOb2RlKGRhdGEpOwoJCQllbHNlCgkJCXsKCQkJCXRlbXAtPm5leHQgPSBuZXdOb2RlKGRhdGEpOwoJCQkJdGVtcD10ZW1wLT5uZXh0OwoJCQl9CgkJfQoJCU5vZGUgKnJlc3VsdCAgPSByZW1vdmVEdXBsaWNhdGVzKGhlYWQpOwoJCXByaW50KHJlc3VsdCk7CgkJY291dDw8ZW5kbDsKCX0KCXJldHVybiAwOwp9CgovKlRoZSBzdHJ1Y3R1cmUgb2YgbGlua2VkIGxpc3QgaXMgdGhlIGZvbGxvd2luZwpzdHJ1Y3QgTm9kZQp7CmludCBkYXRhOwpOb2RlKiBuZXh0Owp9OyovCk5vZGUgKnJlbW92ZUR1cGxpY2F0ZXMoTm9kZSAqcm9vdCkKewogLy8geW91ciBjb2RlIGdvZXMgaGVyZQogICAgc3RydWN0IE5vZGUqIGN1cnIgPSByb290LCpwcmV2ID0gTlVMTDsKICAgIHdoaWxlKGN1cnIpCiAgICB7CiAgICAgICAgaWYocHJldj09TlVMTCkKICAgICAgICB7CiAgICAgICAgCXByZXYgPSBjdXJyOwogICAgICAgIAljdXJyID0gY3Vyci0+bmV4dDsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihjdXJyLT5kYXRhIT1wcmV2LT5kYXRhKQogICAgICAgICAgICBwcmV2ID0gY3VycjsKICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBwcmV2LT5uZXh0ID0gY3Vyci0+bmV4dDsKICAgICAgICAgICAgZGVsZXRlIGN1cnI7CiAgICAgICAgICAgIGN1cnIgPSBwcmV2LT5uZXh0OwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiByb290Owp9Cg==