📜  在 C++ 代码示例中打印链表逆序

📅  最后修改于: 2022-03-11 14:44:57.424000             🧑  作者: Mango

代码示例1
#include
using namespace std;

struct node
{
    int data;
    node* next;
};
node* insert(node* head, int value)
{
    node* temp1 = (node*)malloc(sizeof(node));
    temp1->data = value;
    temp1->next = NULL;
    if (head == NULL)
    {
        head = temp1;
    }
    else
    {
        node* temp2 = head;
        while (temp2->next!=NULL)
        {
            temp2 = temp2->next;
        }
        temp2->next = temp1;
    }
    return head;
}
void print(node* p)
{
    if (p == NULL)
        return;
    cout << p->data << " ";
    print(p->next);
}
void reverse_order(node* p)
{
    if (p == NULL)
        return;
    reverse_order(p->next);
    cout << p->data << " ";
}
int main()
{
    node* head = NULL;
    head = insert(head, 1);
    head = insert(head, 2);
    head = insert(head, 3);
    print(head);             //list: 1 2 3.
    cout << endl;
    reverse_order(head);    //list: 3 2 1.

    return 0;
}