思路:
方式1、先将单链表反转,然后遍历,这样做的问题会破坏单链表的结构
方式2、利用栈这个数据结构,**将各个节点压入栈中,然后利用栈的先进后出特点。**栈就像一个弹夹
核心代码
// 方式2、利用栈这个数据结构,**将各个节点压入栈中,然后利用栈的先进后出特点。
// **栈就像一个弹夹
public static void reversePrint(HeroNode head) {
if (head.next == null) {
return;// 空链表无法打印
}
// 创建一个栈,将各个节点压入栈中
Stack<HeroNode> stack = new Stack<HeroNode>();
HeroNode cur = head.next;
while (cur != null) {
// 将节点压入栈
stack.push(cur);
cur = cur.next;
}
// 将节点从栈中pop出
while (stack.size() > 0) {
System.out.println(stack.pop());
}
}