思路:
方式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());
}
}
本文介绍了一种不破坏单链表结构的逆序打印方法,通过使用栈数据结构存储链表节点,再利用栈的先进后出特性进行逆序打印,避免了直接反转链表带来的结构破坏。
&spm=1001.2101.3001.5002&articleId=107604085&d=1&t=3&u=c596bb5b82574a54b5a9d69901e8e460)
1427

被折叠的 条评论
为什么被折叠?



