void swapNth(Node **head, int n) { if (head == NULL || *head == NULL || n == 1) { return; } int count = 0; Node *prev = *head; while (prev && count < n-2) { prev = prev->next; count++; } if (prev == NULL) { return; } Node *p = prev->next; if (p == NULL) { return; } Node *next = p->next; p->next = (*head)->next; (*head)->next = next; prev->next = *head; *head = p; }