
文章链接
数据结构-链表-单向链表
面5笔5从尾到头打印单链表
方式1:可以将链表反转,再逆序打印
方式2:利用栈,将各个节点压入栈中,利用先入后出的特性,实现逆序打印
简单测试一下栈的特性
package linkedlist;
import java.util.Stack;
public class TestStack {
public static void main(String[] args) {
Stack<String> stack = new Stack<>();
//入栈
stack.add("jack");
stack.add("tom");
stack.add("smith");
//出栈
while (stack.size() > 0) {
//pop()就是将栈顶元素取出。
System.out.println(stack.pop());
}
}
}
逆序打印单链表
/**
* 测试逆序打印单链表
* @param head
*/
public static void reversePrint(HeroNode head) {
//空链表,不能答应
if (head.next == null) {
return;
}
//创建一个栈,将各个节点压入
Stack<HeroNode> stack = new Stack<>();
HeroNode cur = head.next;
//将链表全部节点压入栈中
while (cur != null) {
stack.push(cur);
//cur后移,可以将下一个节点压入
cur = cur.next;
}
while (stack.size() > 0) {
//栈的特点,先进后出
System.out.println(stack.pop());
}
}
测试逆序打印
//测试逆序打印单链表
System.out.println("测试逆序打印单链表");
reversePrint(singleLinkedList.getHead());