思路:0 若允许改变链表指针,可以将链表反转,然后在正向输出。
http://blog.csdn.net/shuaishuai3409/article/details/50756406
http://blog.csdn.net/shuaishuai3409/article/details/50756480参照这两篇博客实现单链表反转。如果反转会了,正向输出也就不难了。
若不允许改变链表指针,可以新建一个栈,实现后进先出。
若也不允许创建新的空间,可以用递归实现。因为栈用的就是递归的思想,每当访问一个节点时,先输出其后面节点的数据。
这里先给出递归实现逆向输出。
public class BackOutput {
public void backout(Lnode p) {
if(p.next!=null){
backout(p.next);
}
System.out.println(p.data);
}
}
该代码还是要参照上述两个连接。p指的是链表头指针,Lnode是链表类。
用栈的思想实现单链表元素逆向输出。
栈分顺序栈和链栈,链栈和单链表相似,就不考虑了。这里用数组实现顺序栈。