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

在C中以正确的顺序打印链表

在C语言中,要以正确的顺序打印链表,可以使用递归或迭代的方式来实现。以下是两种常见的方法:

方法一:递归法 递归法是一种简洁的方法,可以通过递归函数来实现链表的逆序打印。

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

// 定义链表节点结构体
struct ListNode {
    int val;
    struct ListNode* next;
};

// 递归函数
void printListReverse(struct ListNode* head) {
    if (head == NULL) {
        return;
    }
    printListReverse(head->next);
    printf("%d ", head->val);
}

// 测试样例
int main() {
    // 创建链表
    struct ListNode* head = (struct ListNode*)malloc(sizeof(struct ListNode));
    head->val = 1;
    head->next = (struct ListNode*)malloc(sizeof(struct ListNode));
    head->next->val = 2;
    head->next->next = (struct ListNode*)malloc(sizeof(struct ListNode));
    head->next->next->val = 3;
    head->next->next->next = NULL;

    // 逆序打印链表
    printListReverse(head);

    // 释放链表内存
    free(head->next->next);
    free(head->next);
    free(head);

    return 0;
}

方法二:迭代法 迭代法是通过辅助栈来实现链表的逆序打印。

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

// 定义链表节点结构体
struct ListNode {
    int val;
    struct ListNode* next;
};

// 迭代函数
void printListReverse(struct ListNode* head) {
    struct ListNode* stack[1000];  // 定义辅助栈
    int top = -1;

    // 将链表节点依次入栈
    while (head != NULL) {
        stack[++top] = head;
        head = head->next;
    }

    // 出栈并打印节点值
    while (top >= 0) {
        printf("%d ", stack[top--]->val);
    }
}

// 测试样例
int main() {
    // 创建链表
    struct ListNode* head = (struct ListNode*)malloc(sizeof(struct ListNode));
    head->val = 1;
    head->next = (struct ListNode*)malloc(sizeof(struct ListNode));
    head->next->val = 2;
    head->next->next = (struct ListNode*)malloc(sizeof(struct ListNode));
    head->next->next->val = 3;
    head->next->next->next = NULL;

    // 逆序打印链表
    printListReverse(head);

    // 释放链表内存
    free(head->next->next);
    free(head->next);
    free(head);

    return 0;
}

以上是两种在C语言中以正确的顺序打印链表的方法。这些方法可以应用于各种链表相关的问题,例如链表的反转、链表的合并等。如果你想了解更多关于链表的知识,可以参考腾讯云的云原生数据库TDSQL产品,它提供了高性能、高可用的分布式数据库服务,适用于各种场景的数据存储需求。详情请访问:腾讯云TDSQL产品介绍

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

相关·内容

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券