C++ 打印链接列表的反面

C++ 打印链接列表的反面,c++,C++,我正在解决一个问题,我试图打印出一行数字。我有一个包含两个链表的对象。一个列表是正数(包括零),一个链表是负数(从-1开始),我有指向每个列表头的指针。我想做的是按顺序把清单打印出来。如果负链表有五个节点,正链表有六个节点,我想打印出来 -5 -4 -2 -1 0 1 2 3 4 5 我已经编写了按顺序打印肯定列表的代码。我很难想出如何以相反的顺序打印负面列表。该函数正在重写下一个!=空){ 用于(计数器;计数器>0;计数器--){ 温度=温度->下一步; } os值; } //下面的所有内

我正在解决一个问题,我试图打印出一行数字。我有一个包含两个链表的对象。一个列表是正数(包括零),一个链表是负数(从-1开始),我有指向每个列表头的指针。我想做的是按顺序把清单打印出来。如果负链表有五个节点,正链表有六个节点,我想打印出来

-5 -4 -2 -1 0 1 2 3 4 5 
我已经编写了按顺序打印肯定列表的代码。我很难想出如何以相反的顺序打印负面列表。该函数正在重写下一个!=空){ 用于(计数器;计数器>0;计数器--){ 温度=温度->下一步; } os值; } //下面的所有内容都会打印非负列表 温度=对象非负头; //遍历非负列表并打印每个元素(如果不是null) while(临时->下一步!=NULL){ os值; 温度=温度->下一步; } 返回操作系统; }
底部的代码是打印肯定链表,这是非常基本的。最上面的部分是我尝试以相反的顺序打印否定列表,但它不起作用,我甚至不确定这是我应该做的方向。

您可以创建一个递归函数,如:

void print_list_reverse(LinkedListNode* current_node) {
    if (current_node->next != NULL) print_list_reverse(current_node->next);
    os << current_node->value;
}
void print\u list\u reverse(LinkedListNode*当前节点){
如果(当前\u节点->下一步!=NULL)打印\u列表\u反转(当前\u节点->下一步);
os值;
}
这将一直进行到列表的末尾,并在返回的过程中打印每个值


请记住,如果您的列表太大,它可能会崩溃。

您将很难向后遍历单个链接列表。这就是你问题的本质。如果你愿意做到完美,你可以使用一个技巧。谢谢,如果您传递一个空的列表指针,它也会中断(没有可能)。顺便说一句,解决这个问题不需要太多。
void print_list_reverse(LinkedListNode* current_node) {
    if (current_node->next != NULL) print_list_reverse(current_node->next);
    os << current_node->value;
}