如何以相反的顺序打印链表?

时间:2016-05-18 04:03:11

标签: c++

我尝试用c ++制作链表。 我想写一个方法,它应该以相反的顺序读取链表。 我不想改变方法中的论点。 我的问题是递归,我不知道应该到达那里。 在我看来,堆栈是个好主意。 我的代码:

void  reverse(List* list) {
    Node * wsk = list->first;
    if (list->first == NULL) {
        return;
    } else if (wsk->next != NULL) {
        reverse(list); // reverse(?)
    }
    cout << wsk->value << endl;
}

1 个答案:

答案 0 :(得分:0)

编写一个辅助函数,遍历链表的节点并以相反的顺序打印它们。

void  reverse_nodes(Node* node) {
   if ( node != NULL )
   {
      reverse_nodes(node->next);
      cout << node->value << endl;
   }
}

并从使用列表调用的函数中调用它。

void  reverse(List* list) {
   reverse_nodes(list->first);
}