@above
attaching the file..
--
You received this message because you are subscribed to the Google Groups
"Algorithm Geeks" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/algogeeks/-/YW_phbT3me4J.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.
struct node
{
int data;
struct node *link;
};
node* CreateNode(int val)
{
node* root = (node*)malloc(sizeof(struct node));
root->data = val;
root->link = NULL;
return root;
}
node* createList(int *arr, int n)
{
node * root = CreateNode(arr[0]);
node * temp = root;
for (int i =1; i < n; ++i)
{
temp->link = CreateNode(arr[i]);
temp = temp->link;
}
return root;
}
void deleteList(node *root)
{
if(!root) return;
deleteList(root->link);
free(root);
}
void printList(node *root)
{
while(root)
{
printf("%d -> ", root->data);
root= root->link;
}
printf("NULL\n");
}
void reverseK(node *root, node **head, node **tail, int i, int K)
{
if(!root->link)
*head = root;
else
{
reverseK(root->link, head, tail, (i+1)%K, K);
if(i == K-1)
{
*tail = *head;
*head = root;
}
else
{
root->link->link= root;
if(i == 0) root->link = *tail;
}
}
}
node* reverseKSize(node *root, int K)
{
if(!root) return NULL;
node *head = NULL;
node *tail = NULL;
reverseK(root, &head, &tail, 0, K);
return head;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a[11] = {1,2,3,4,5,6,7,8,9,10,11};
node* root = createList(a, 11);
printList(root);
root = reverseKSize(root, 2);
printList(root);
deleteList(root);
return 0;
}