Find modular node in a linked list

Given a singly linked list and a number k, find the last node whose n%k == 0, where n is the number of nodes in the list.

Examples:

```Input : list = 1->2->3->4->5->6->7
k = 3
Output : 6

Input : list = 3->7->1->9->8
k = 2
Output : 9
```

Recommended: Please solve it on “PRACTICE” first, before moving on to the solution.

1. Take a pointer modularNode and initialize it with NULL. Traverse the linked list.
2. For every i%k=0, update modularNode.

C++

```// C++ program to find modular node in a linked list
#include <bits/stdc++.h>

struct Node {
int data;
Node* next;
};

/* Function to create a new node with given data */
Node* newNode(int data)
{
Node* new_node = new Node;
new_node->data = data;
new_node->next = NULL;
return new_node;
}

/* Function to find modular node in the linked list */
{
// Corner cases
if (k <= 0 || head == NULL)
return NULL;

// Traverse the given list
int i = 1;
Node* modularNode = NULL;
for (Node* temp = head; temp != NULL; temp = temp->next) {
if (i % k == 0)
modularNode = temp;

i++;
}
return modularNode;
}

/* Driver program to test above function */
int main(void)
{
int k = 2;
printf("\nModular node is ");
else
printf("null\n");
return 0;
}
```

Java

```// A Java program to find modular node in a linked list
public class GFG
{
static class Node{
int data;
Node next;
Node(int data){
this.data = data;
}
}

// Function to find modular node in the linked list
static Node modularNode(Node head, int k)
{
// Corner cases
if (k <= 0 || head == null)
return null;

// Traverse the given list
int i = 1;
Node modularNode = null;
for (Node temp = head; temp != null; temp = temp.next) {
if (i % k == 0)
modularNode = temp;

i++;
}
return modularNode;
}

// Driver code to test above function
public static void main(String[] args)
{
int k = 2;
System.out.print("Modular node is ");
else
System.out.println("null");
}
}
// This code is contributed by Sumit Ghosh
```

Output:

```Modular node is 4
```

This article is contributed by Prakriti Gupta. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

GATE CS Corner    Company Wise Coding Practice

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.
1.5 Average Difficulty : 1.5/5.0
Based on 9 vote(s)