Hi,
i have written a small code for this. have a look at it
insert
Code:
void swapNodes(node *p, node *q) {
printf("\nNode to be swapped p = %d\t q = %d\n", p->val, q->val);
node *prevP, *prevQ, *temp;
// check if one of it is head or not
if(p != head && q != head) {
for(prevP = head; prevP->next != p; prevP = prevP->next);
for(prevQ = head; prevQ->next != q; prevQ = prevQ->next);
prevP->next = q;
temp = q->next;
q->next = p->next;
prevQ->next = p;
p->next = temp;
} else {
prevP = prevQ = NULL;
if(head == p) {
for(prevQ = head; prevQ->next != q; prevQ = prevQ->next);
head = q;
prevQ->next = p;
} else {
for(prevP = head; prevP->next != p; prevP = prevP->next);
head = p;
prevP->next = q;
}
temp = q->next;
q->next = p->next;
p->next = temp;
}
}
Regards,
Sandeep Patra