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
广告