单向链表没有前指针,所以实现反向打印还是比较麻烦,我们这里使用递归原理解决此问题。
这里提到逆转,也就是将单链表的next指针指向前一个节点,我们也使用递归实现。
// 练习:实现单向线性链表的建立、测长、正向打印和
// 反向打印
// 逆转
#include <iostream>
using namespace std;
class List {
public:
// 构造函数中初始化为空链表
List (void) : m_head (NULL), m_tail (NULL) {}
// 析构函数中销毁剩余的节点
~List (void) {
for (Node* next; m_head; m_head = next) {
next = m_head -> m_next;