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次瀏覽

開啟你的職業生涯

透過完成本課程獲取認證。

入門
廣告
© . All rights reserved.