当前位置:首页 C++ > 正文

C++使用递归来顺序和逆序输出链表的全部元素

作者:野牛程序员:2023-11-20 15:36:36 C++阅读 2389

顺序输出链表的全部元素可以使用递归方式,代码如下:

#include <iostream>

struct Node {
    int data;
    Node* next;
    
    Node(int val) : data(val), next(nullptr) {}
};

void printList(Node* head) {
    if (head == nullptr) {
        return;
    }

    // 输出当前节点的值
    std::cout << head->data << " ";

    // 递归调用,处理下一个节点
    printList(head->next);
}

int main() {
    // 构造一个简单的链表
    Node* head = new Node(1);
    head->next = new Node(2);
    head->next->next = new Node(3);
    head->next->next->next = new Node(4);

    // 顺序输出链表的全部元素
    std::cout << "顺序输出链表的全部元素: ";
    printList(head);

    delete head->next->next->next;
    delete head->next->next;
    delete head->next;
    delete head;

    return 0;
}

逆序输出链表的全部元素也可以使用递归方式,但需要稍作修改。以下是逆序输出链表的代码:

#include <iostream>

struct Node {
    int data;
    Node* next;
    
    Node(int val) : data(val), next(nullptr) {}
};

void reversePrintList(Node* head) {
    if (head == nullptr) {
        return;
    }

    // 递归调用,处理下一个节点
    reversePrintList(head->next);

    // 输出当前节点的值
    std::cout << head->data << " ";
}

int main() {
    // 构造一个简单的链表
    Node* head = new Node(1);
    head->next = new Node(2);
    head->next->next = new Node(3);
    head->next->next->next = new Node(4);

    // 逆序输出链表的全部元素
    std::cout << "逆序输出链表的全部元素: ";
    reversePrintList(head);

    delete head->next->next->next;
    delete head->next->next;
    delete head->next;
    delete head;

    return 0;
}

这两个示例中,printList 函数用于顺序输出链表元素,而 reversePrintList 函数用于逆序输出链表元素。

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击