剑指offer---java练习篇(3)

本文介绍了一种使用栈实现链表逆序打印的方法。通过遍历链表并将节点值存入栈中,再依次弹出栈中的元素实现从尾到头的打印。文章附带了完整的Java代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天继续练习剑指offer上练习题,该博客只是记录自己学习过程,欢迎各位博友,批评指正。


三、输入一个链表,从尾到头打印每个节点的数据


题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值。


解题思路:

从头到尾打印出每个节点的值,我们自然想到遍历,但是题目要求反过来打印,也就是遍历时,第一个节点的数据,确是最后一个打印出来,这时候自然想到栈。先进后出,因此,本次我们想到遍历后将节点数据保存在一个栈中,再输出栈即可。


java代码:

public class CongWeiDaoTouDaYinLianBiao {
	public ArrayList<Integer> printListFromTainToHead(ListNode ListNode){
		ArrayList<Integer> List = new ArrayList<Integer>();
		ArrayList<Integer> List2 = new ArrayList<Integer>();
		
		ListNode n = LiseNode;
		while(n != null){
			List.add(n.val);
			n = n.next;
			
		}
		
		for(int i = List.size()-1; i >= 0; i--){
			List2.add(List.get(i));
			System.out.println(List.get(i));
		}
		return List2;
		
 		
	}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值