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("
Altered Linked List:\t");    printLinkedList(head);    return 0; }

输出

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

更新于:18-7 -2020

336次浏览

开启你的职业生涯

通过完成本课程获取认证。

入门
广告