为了不改变链表原本的顺序,这里使用 栈 的“先进后出”的特点,完成单链表的逆序打印。
public static void reversePrint(HeroNode head) {
if (head.next == null) {
return;
}
HeroNode temp = head.next;
// 创建一个栈
Stack<HeroNode> stack = new Stack<>();
while (temp != null) {
// 入栈
stack.push(temp);
temp = temp.next;
}
// 出栈
while (stack.size() > 0) {
System.out.println(stack.pop());
}
}