gpt4 book ai didi

c++ - 显示链表时倒序

转载 作者:行者123 更新时间:2023-11-28 02:17:40 29 4
gpt4 key购买 nike

我有这段代码,我从头开始输入 5 个随机元素 1,3,5,7,9 然后我想显示我的链表 (1,3,5,7,9),但是它在由于某些奇怪的原因(9,7,5,3,1)颠倒顺序。能指出问题吗?

#include <iostream> using namespace std;

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

int n;

int main() {

// input.
cout << "please input 5 elements:\n";
node * head = NULL;
for (int i = 0; i < 5; i++) {
cin >> n;
node * curr = new node;
curr -> data = n;
curr -> next = head;
head = curr;
}


// display
while (head) {
cout << head -> data << "\n";
head = head -> next;
}

return 0;

}

最佳答案

实现此目的的一种方法是使用递归。使用调用堆栈来跟踪您将继续遍历列表的每个节点。到达终点后,您将打印并结束该功能。然后这将传播回调用堆栈打印下一个元素回到开始。

void print_revers(node* n)
{
if (n)
print_reverse(n->next)
std::cout << n->data << std::endl;
}

此示例假定列表中的最后一个节点 next 指向 NULLnullptr

关于c++ - 显示链表时倒序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33554860/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com