java链表的逆向打印(不改变原来链表的结构)
使用原理
- java进出栈原理:java将数据push进栈,先进去的存在栈最下面,出栈时pop的最上面的数据,即“先进后出”。利用这一原理,将链表中的数据先压入栈中,后将每一次出栈的数据打印出来,即实现逆向打印,且不改变原来链表的结构。
实现代码
//逆序打印链表,利用栈先入后出的特点
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;
}
//出栈
while(stack.size()>0) {
System.out.println(stack.pop());
}
}
测试代码
HeroNode hero1 = new HeroNode(1, "张祥", "最厉害的");
HeroNode hero2 = new HeroNode(2, "张祥11", "最厉害的11");
HeroNode hero3 = new HeroNode(3, "张祥111", "最厉害的111");
HeroNode hero4