c++迭代器实现链表
时间: 2023-10-10 13:06:23 浏览: 111
对于链表的迭代器实现,可以定义一个迭代器类来实现。迭代器类需要记录当前遍历的节点位置,并提供一些方法来移动到下一个节点、获取当前节点值等操作。以下是一个简单的链表迭代器的实现示例:
```cpp
#include <iostream>
// 链表节点
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(nullptr) {}
};
// 迭代器类
class ListIterator {
public:
explicit ListIterator(ListNode* head) : curr(head) {}
bool hasNext() {
return curr != nullptr;
}
int next() {
int val = curr->val;
curr = curr->next;
return val;
}
private:
ListNode* curr;
};
// 测试代码
int main() {
// 创建链表
ListNode* head = new ListNode(1);
head->next = new ListNode(2);
head->next->next = new ListNode(3);
// 使用迭代器遍历链表
ListIterator it(head);
while (it.hasNext()) {
std::cout << it.next() << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:1 2 3
阅读全文