Given a linked list, delete N nodes after skipping M nodes of a linked list until the last of the linked list.
First line of input contains number of testcases T. For each testcase, first line of input contains number of elements in the linked list and next M and N respectively space separated. The last line contains the elements of the linked list.
Function should not print any output to stdin/console.
The task is to complete the function linkdelete() which should modify the linked list as required.
2
8
2 1
9 1 3 5 9 4 10 1
6
1 2
8 4 8 10 1 3
9 1 5 9 10 1
8 10
class Solution
{
public:
void linkdelete(struct Node *head, int M, int N)
{
Node* node = head;
while(node != NULL) {
for(int i = 1; i < M && node != NULL; ++i) {
node = node->next;
}
if(node == NULL) return;
Node* ref = node;
for(int i = 0; i <= N && node != NULL; ++i) {
node = node->next;
}
ref->next = node;
}
}
};