在C ++的链表中查找模块化节点

在这个问题上,我们得到一个单链表LL和一个数字k。我们的任务是在链接列表中查找模块化节点。

问题描述-我们需要找到链表的最后一个节点,索引可以被k整除,即i%k == 0。

让我们举个例子来了解这个问题,

输入

ll = 3 -> 1 -> 9 -> 6 -> 8 -> 2, k = 4
输出结果
6

解释

The element 6 has index 4, which is divisible by 4.

解决方法

解决该问题的简单方法是创建一个计数器,以对链表的元素进行计数,并存储模块化节点(即i%k == 0的节点),并更新所有满足条件的值,直到n。

该程序说明了我们解决方案的工作原理,

示例

#include <iostream>

using namespace std;

struct Node {

   int data;

   Node* next;

};

Node* newNode(int data) {

   Node* new_node = new Node;

   new_node->data = data;

   new_node->next = NULL;

   return new_node;

}

Node* findModularNodeLL(Node* head, int k) {

   if (k <= 0 || head == NULL)

      return NULL;

   int i = 1;

   Node* modNode = NULL;

   for (Node* currNode = head; currNode != NULL; currNode =

      currNode->next) {

         if (i % k == 0)

            modNode = currNode;

            i++;

   }

   return modNode;

}

int main() {

   Node* head = newNode(3);

   head->next = newNode(1);

   head->next->next = newNode(9);

   head->next->next->next = newNode(6);

   head->next->next->next->next = newNode(8);

   head->next->next->next->next->next = newNode(2);

   int k = 4;

   Node* modularNode = findModularNodeLL(head, k);

   cout<<"链表的Modular节点是 ";

   if (modularNode != NULL)

      cout<<modularNode->data;

   else

   cout<<"未找到!";

   return 0;

}

输出结果
链表的Modular节点是 6

以上是 在C ++的链表中查找模块化节点 的全部内容, 来源链接: utcz.com/z/329477.html

回到顶部