倒序打印链表有以下几种常见思路:

  1. 先反转链表,然后遍历输出。
  2. 遍历一次链表,将地址加入数组,然后倒序遍历数组输出。
  3. 利用 stack,遍历一次将 Node 加入,然后 pop 输出。
  4. 利用递归。

下面是利用递归实现的示例代码:

struct Node
{
	Node*next;
	int data;
	Node(){ func; }
};




Node* Insert(Node**p, int data)
{
	if (data == 0)
	{
		(*p)->next = nullptr;
		(*p)->data = 0;

		return nullptr;

	}
	(*p)->next = new Node;
	(*p)->data = data;

	return Insert(&(*p)->next, data - 1);


}


void Print(Node*p)
{
	if (p)
	{
		Print(p->next);
		cout << p->data << " ";
	}


}
int main()
{

	Node* head = new Node;
	head->data = 5;
	Insert(&head, 5);


	//	while (head)
	{
		///cout << head->data << " ";
		//head = head->next;
	}

	Print(head);
	system("pause");
	return 0;
}