C程序以反转单链列表中的每个节点值

在本文中,我们将获得一个链接列表。我们的任务是创建一个C程序来反转单链列表中的每个节点值。

我们将获取链表的每个节点并反转其值。

链接列表是一系列链接,其中包含链接到另一个链接的项目。

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

输入项

34 12 89 56 72

输出结果

43 21 98 65 27

为了解决这个问题,我们将遍历单链列表并获取每个节点。然后反转当前节点的值。

程序以反转单链表中的每个节点值

//编程以反转单链列表中的每个节点值。

示例

#include <stdio.h>
#include <stdlib.h>
struct Node {
   int data;
   struct Node* next;
};
struct Node* insertNode(int key) {
   struct Node* temp = new Node;
   temp->data = key;
   temp->next = NULL;
   return temp;
}
int reverseValue(int number) {
   int revElement = 0, rem;
   while (number != 0) {
      rem = number % 10;
      revElement = revElement * 10 + rem;
      number = number / 10;
   }
   return revElement;
}
void reverseLinkedListElements(struct Node* node) {
   if (node == NULL)
      return;
   while (node != NULL) {
      node->data = reverseValue(node->data);
      node = node->next;
   }
}
void printLinkedList(struct Node* node) {
   while (node != NULL) {
      printf("%d ", node->data);
      node = node->next;
   }
}
int main() {
   struct Node* head = NULL;
   head = insertNode(34);
   head->next = insertNode(12);
   head->next->next = insertNode(89);
   head->next->next->next = insertNode(56);
   head->next->next->next->next = insertNode(72);
   printf("Orignal Linked List :\t");
   printLinkedList(head);
   reverseLinkedListElements(head);
   printf("\nAltered Linked List:\t");
   printLinkedList(head);
   return 0;
}

输出结果

Orignal Linked List : 34 12 89 56 72
Altered Linked List: 43 21 98 65 27