java链表的逆向打印(不改变原来链表的结构)

本文介绍如何使用Java实现链表的逆向打印,通过进出栈原理,将链表数据压入栈中,再依次出栈进行打印,整个过程不改变链表原有的结构。包括了实现代码和测试代码。
摘要由CSDN通过智能技术生成

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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值