首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用C语言编写反向链表程序

反向链表是指将链表中的节点顺序颠倒,即原链表的头节点变为尾节点,原链表的尾节点变为头节点。下面是用C语言编写反向链表程序的示例代码:

代码语言:c
复制
#include <stdio.h>
#include <stdlib.h>

// 定义链表节点结构体
typedef struct Node {
    int data;
    struct Node* next;
} Node;

// 反向链表函数
Node* reverseLinkedList(Node* head) {
    Node* prev = NULL;
    Node* curr = head;
    Node* next = NULL;

    while (curr != NULL) {
        next = curr->next;
        curr->next = prev;
        prev = curr;
        curr = next;
    }

    return prev;
}

// 打印链表函数
void printLinkedList(Node* head) {
    Node* curr = head;

    while (curr != NULL) {
        printf("%d ", curr->data);
        curr = curr->next;
    }

    printf("\n");
}

int main() {
    // 创建链表
    Node* head = (Node*)malloc(sizeof(Node));
    Node* second = (Node*)malloc(sizeof(Node));
    Node* third = (Node*)malloc(sizeof(Node));

    head->data = 1;
    head->next = second;

    second->data = 2;
    second->next = third;

    third->data = 3;
    third->next = NULL;

    printf("原链表:");
    printLinkedList(head);

    // 反向链表
    Node* newHead = reverseLinkedList(head);

    printf("反向链表:");
    printLinkedList(newHead);

    return 0;
}

上述代码中,我们首先定义了一个链表节点结构体 Node,包含一个整型数据 data 和一个指向下一个节点的指针 next。然后,我们实现了一个 reverseLinkedList 函数,用于反向链表。该函数使用三个指针 prevcurrnext,通过遍历链表将节点的 next 指针指向前一个节点,从而实现链表的反向。最后,我们在 main 函数中创建了一个简单的链表,并调用 reverseLinkedList 函数进行反向操作,然后通过 printLinkedList 函数打印原链表和反向链表的内容。

这个程序的应用场景是在需要对链表进行反向操作时使用。例如,在某些算法或数据结构中,需要按照相反的顺序遍历链表,或者需要将链表的顺序进行逆转等。

腾讯云提供了丰富的云计算产品,其中与链表相关的产品可能没有直接的对应。但是,腾讯云提供了强大的计算、存储和网络服务,可以用于支持开发和部署链表相关的应用。具体可以参考腾讯云的官方网站(https://cloud.tencent.com/)获取更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

1分26秒

C语言 | 用%f输出实数

3分40秒

【真●零基础C语言入门】四、开始编写C语言代码

2.6K
1分35秒

C语言 | 建立链表,输出各结点中的数据

2分13秒

C语言 | 用指针对10个数排序

1分37秒

C语言用指针对10个数排序

1分46秒

C语言 | 统计选票结果的程序

1分15秒

如何编写一个使用Objective-C的下载器程序

3分4秒

C语言程序设计入门1

1分39秒

C语言 | 用同一表格输出若干人的数据

4分24秒

李南江带你玩转C语言-04-创建第一个C语言程序

15分21秒

010-尚硅谷-高校大学生C语言课程-C程序转义字符

24分0秒

006-尚硅谷-高校大学生C语言课程-C程序开发环境搭建

领券