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