![]()
1. C++封装成类,基于面向对象
class DoublyLinkedList { private: struct Node { int data; Node* prior; Node* next; Node(int d) : data(d), prior(nullptr), next(nullptr) {} }; Node* head; // 哨兵头节点 Node* last; public: DoublyLinkedList() : head(new Node(0)), last(nullptr) { head->prior = nullptr; head->next = nullptr; } void printReverse() const { if (!last) return; for (Node* temp = last; temp != head; temp = temp->prior) { std::cout << temp->data << " "; } std::cout << std::endl; } ~DoublyLinkedList() { // 清理内存(略,需遍历删除) delete head; } };
2. 逆序遍历双链表
// 逆序打印(逻辑与之前完全一致) void printReverse() const { if (last == nullptr) { std::cout << "链表为空" << std::endl; return; } std::cout << "逆序输出: "; for (DNode* temp = last; temp != head; temp = temp->prior) { std::cout << temp->data << " "; } std::cout << std::endl; } ~DoublyLinkedList() { DNode* curr = head; while (curr != nullptr) { DNode* toDelete = curr; curr = curr->next; delete toDelete; } }