📅  最后修改于: 2023-12-03 15:14:26.185000             🧑  作者: Mango
在C语言中,我们可以通过以下代码实现反转单向链表中每个节点值:
#include<stdio.h>
#include<stdlib.h>
// 定义一个单向链表结构体
struct node{
int data;
struct node* next;
};
// 反转单向链表中每个节点的值
void reverseList(struct node* head){
struct node* p = head;
while(p!=NULL){
p->data = ~p->data; // 取反操作
p = p->next; // 移动指针
}
}
int main(){
// 创建一个单向链表
struct node* head = (struct node*)malloc(sizeof(struct node));
head->data = 1;
head->next = NULL;
struct node* p = head;
for(int i=2;i<=5;i++){
p->next = (struct node*)malloc(sizeof(struct node));
p->next->data = i;
p->next->next = NULL;
p = p->next;
}
// 输出反转前的链表
printf("反转前的链表:\n");
p = head;
while(p!=NULL){
printf("%d ",p->data);
p = p->next;
}
// 反转单向链表中每个节点的值
reverseList(head);
// 输出反转后的链表
printf("\n反转后的链表:\n");
p = head;
while(p!=NULL){
printf("%d ",p->data);
p = p->next;
}
return 0;
}
上述代码中,我们定义了一个单向链表结构体node
,其中包括了一个整型变量data
和一个指向下一个节点的指针next
。我们创建一个单向链表并初始化了其中的节点。在reverseList
函数中,我们使用了一个循环来遍历链表中的每个节点,对节点中的数据进行取反(~)操作,从而实现了链表节点值的反转。最后,在main
函数中,我们输出了反转前和反转后的链表的节点值。
以上就是反转单向链表中每个节点的值的C语言实现,希望对大家有所帮助!