c++ 链表反向遍历
时间: 2024-03-13 14:40:33 浏览: 96
C++中的链表反向遍历可以通过递归或者使用栈来实现。下面是两种方法的介绍:
1. 递归方法:
链表的反向遍历可以通过递归来实现。具体步骤如下:
- 首先,定义一个递归函数,该函数接受一个指向链表节点的指针作为参数。
- 在递归函数中,先递归调用自身,传入下一个节点的指针。
- 然后,在递归函数的末尾,输出当前节点的值。
以下是一个示例代码:
```cpp
void reverseTraversal(Node* node) {
if (node == nullptr) {
return;
}
reverseTraversal(node->next);
cout << node->data << " ";
}
```
2. 使用栈:
另一种方法是使用栈来实现链表的反向遍历。具体步骤如下:
- 首先,创建一个空栈。
- 然后,从链表的头节点开始,将每个节点依次压入栈中,直到链表的末尾。
- 最后,从栈顶开始依次弹出节点,并输出节点的值。
以下是一个示例代码:
```cpp
void reverseTraversal(Node* head) {
stack<Node*> s;
Node* current = head;
while (current != nullptr) {
s.push(current);
current = current->next;
}
while (!s.empty()) {
Node* node = s.top();
cout << node->data << " ";
s.pop();
}
}
```
阅读全文