将一个单链表从尾到头反过来打印每个结点的值
我想到了三种方法:
先反转单链表,然后再从头到尾输出;
步骤:
1. 将当前节点的next节点指向他之前的前一个节点;
2. 当前节点下移一位;
3. 如果是最后一个节点,就把它的next节点指向它以前的前一个节点,并退出循环;利用栈倒序输出链表
直接访问单链表每个结点,依次将每个结点存储在一个栈中,然后输出这个栈;利用递归访问原单链表;
递归就是一个进栈出栈的过程,链表前面的元素先进栈,在栈底,后面的元素后进栈,在栈顶,先出栈。
创建单链表
单链表结点定义:
struct Node
{
int data;
Node *next;
};
创建长度为6的单链表
Node* createList(int n)
{
Node *head, *ptr, *newNode;
head = new Node;
//head->data = 0;
head->next = NULL;
ptr = head;
for (int i=