在本文中,我们将获得一个链接列表。我们的任务是创建一个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