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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP