#include <iostream>
#include <stack>
using namespace std;
struct ListNode
{
int value;
ListNode* next;
ListNode(int value, ListNode* node) :value(value), next(node)
{
}
};
void traverseList(ListNode* head)
{
while (head != NULL)
{
std::cout << head->value << " ";
head = head->next;
}
std::cout << std::endl;
}
void reverseList(ListNode* head)
{
stack<int> reverseListStack;
while (head != NULL)
{
reverseListStack.push(head->value);
head = head->next;
}
while (!reverseListStack.empty())
{
std::cout << reverseListStack.top() << " ";
reverseListStack.pop();
}
std::cout << std::endl;
}
int main()
{
ListNode* node1 = new ListNode(1, NULL);
ListNode* node2 = new ListNode(2, NULL);
ListNode* node3 = new ListNode(3, NULL);
ListNode* node4 = new ListNode(4, NULL);
ListNode* node5 = new ListNode(5, NULL);
ListNode* node6 = new ListNode(6, NULL);
ListNode* node7 = new ListNode(7, NULL);
node1->next = node2;
node2->next = node3;
node3->next = node4;
node4->next = node5;
node5->next = node6;
node6->next = node7;
traverseList(node1);
reverseList(node1);
}
倒序打印链表——利用栈
于 2022-03-20 17:28:47 首次发布