在链表中查找模数节点
原文:https://www.geeksforgeeks.org/find-modular-node-linked-list/
给定一个单链表和一个数字k
,找到最后一个节点,其n % k == 0
,其中n
是列表中的节点数。
示例:
Input : list = 1->2->3->4->5->6->7
k = 3
Output : 6
Input : list = 3->7->1->9->8
k = 2
Output : 9
-
取得一个指针
moduleNode
并将其初始化为NULL
。 遍历链表。 -
对于每个
i % k = 0
,更新moduleNode
。
C++
// C++ program to find modular node in a linked list
#include <bits/stdc++.h>
/* Linked list node */
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 */
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 program to test above function */
int main(void)
{
Node* head = newNode(1);
head->next = newNode(2);
head->next->next = newNode(3);
head->next->next->next = newNode(4);
head->next->next->next->next = newNode(5);
int k = 2;
Node* answer = modularNode(head, k);
printf("\nModular node is ");
if (answer != NULL)
printf("%d\n", answer->data);
else
printf("null\n");
return 0;
}
Java
// A Java program to find modular node in a linked list
public class GFG
{
// A Linkedlist node
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)
{
Node head = new Node(1);
head.next = new Node(2);
head.next.next = new Node(3);
head.next.next.next = new Node(4);
head.next.next.next.next = new Node(5);
int k = 2;
Node answer = modularNode(head, k);
System.out.print("Modular node is ");
if (answer != null)
System.out.println(answer.data);
else
System.out.println("null");
}
}
// This code is contributed by Sumit Ghosh
Python3
# Python3 program to find modular node
# in a linked list
import math
# Linked list node
class Node:
def __init__(self, data):
self.data = data
self.next = None
# Function to create a new node
# with given data
def newNode(data):
new_node = Node(data)
new_node.data = data
new_node.next = None
return new_node
# Function to find modular node
# in the linked list
def modularNode(head, k):
# Corner cases
if (k <= 0 or head == None):
return None
# Traverse the given list
i = 1
modularNode = None
temp = head
while (temp != None):
if (i % k == 0):
modularNode = temp
i = i + 1
temp = temp.next
return modularNode
# Driver Code
if __name__ == '__main__':
head = newNode(1)
head.next = newNode(2)
head.next.next = newNode(3)
head.next.next.next = newNode(4)
head.next.next.next.next = newNode(5)
k = 2
answer = modularNode(head, k)
print("Modular node is", end = ' ')
if (answer != None):
print(answer.data, end = ' ')
else:
print("None")
# This code is contributed by Srathore
C
// C# program to find modular node in a linked list
using System;
class GFG
{
// A Linkedlist node
public class Node
{
public int data;
public Node next;
public 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
public static void Main(String[] args)
{
Node head = new Node(1);
head.next = new Node(2);
head.next.next = new Node(3);
head.next.next.next = new Node(4);
head.next.next.next.next = new Node(5);
int k = 2;
Node answer = modularNode(head, k);
Console.Write("Modular node is ");
if (answer != null)
Console.WriteLine(answer.data);
else
Console.WriteLine("null");
}
}
// This code is contibuted by Rajput-JI
输出:
Modular node is 4
本文由 Prakriti Gupta 提供。 如果您喜欢 GeeksforGeeks 并希望做出贡献,则还可以使用 tribution.geeksforgeeks.org 撰写文章,或将您的文章邮寄至 tribution@geeksforgeeks.org。 查看您的文章出现在 GeeksforGeeks 主页上,并帮助其他 Geeks。
如果发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请发表评论。
版权属于:月萌API www.moonapi.com,转载请注明出处