我尝试用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;
}
答案 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);
}