c_cpp 打印链接列表的反向而不实际反转

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 打印链接列表的反向而不实际反转相关的知识,希望对你有一定的参考价值。

// https://www.geeksforgeeks.org/print-reverse-of-a-linked-list-without-actually-reversing/
#include <iostream>
#include <list>
using namespace std;

struct linked_list {
    int data;
    struct linked_list *next;
};
typedef struct linked_list node;

void print (node* head) {
    while (head) {
        cout<< head->data << "->";
        head =head->next;
    }
}

void printreverse (node* head) {
    if (head == NULL)
        return;
    printreverse(head->next);
    cout<< head->data << "->";
}

node* insert(node* head, int n) {
    if (head == NULL) {
        node* list = (node*)malloc(sizeof(node));
        list->data = n;
        list->next = NULL;
        head = list;
        return head;
    }
    node* list = (node*)malloc(sizeof(node));
    list->data = n;
    list->next = NULL;
    node* end = head;
    while (end->next)
        end = end->next;
    end->next = list;
    return head;
}

int main() {
    int n;
    node* head = NULL;
    while (true) {
        cout<< "enter the number: ";
        cin>>n;
        if (n==-9)
            break;
        else
            head = insert(head, n);
    }
    print(head);
    cout<< "\n";
    printreverse(head);
}

以上是关于c_cpp 打印链接列表的反向而不实际反转的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 以给定大小的组反转链接列表设置1

c_cpp 交换链接列表中的节点而不交换数据

原始链接列表在Java中反向链接列表时被修改

Javascript中的反向数组而不改变原始数组

链接上的反向 ArrayList

c_cpp 206.反向链接清单